第三题:有序二维数组查找问题

简介: 有序二维数组查找问题问题描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完 成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

有序二维数组查找问题

问题描述

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完 成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

解题思路

从第一行最右边的数开始比,如果比目标数小,则删除行;若等于,则返回true;若大,则删除列;

java实现

private static boolean containTarget(int[][] arr, int target) {
    // TODO Auto-generated method stub
    int col=arr[0].length-1;
    int row=0;
    while(col>=0&&row<=arr.length-1) {//arr.length为二维数组的行数
        if (arr[row][col]==target) {
            return true;
        }else if (arr[row][col]>target) {
            col--;
        }else if (arr[row][col]<target) {
            row++;
        }
    }
    return false;
}
目录
相关文章
|
2月前
|
算法 索引
【算法】二分算法——山脉数组的峰顶索引
【算法】二分算法——山脉数组的峰顶索引
|
4月前
|
算法 C语言
详解用二分法查找有序数据中的指定数字
详解用二分法查找有序数据中的指定数字
26 1
|
5月前
|
设计模式 算法 Java
【数据结构和算法】子数组最大平均数 I
​ 原题链接:力扣 643 题 子数组最大平均数 I 给你一个由n个元素组成的整数数组nums和一个整数k。 请你找出平均数最大且长度为k的连续子数组,并输出该最大平均数。 任何误差小于10-5的答案都将被视为正确答案。 ​
66 3
|
5月前
|
算法 测试技术 Serverless
【二分查找】【C++算法】378. 有序矩阵中第 K 小的元素
【二分查找】【C++算法】378. 有序矩阵中第 K 小的元素
|
5月前
leetcode-378:有序矩阵中第 K 小的元素
leetcode-378:有序矩阵中第 K 小的元素
31 0
|
10月前
|
算法 测试技术 C++
C++二分查找算法:有序矩阵中的第 k 个最小数组和(一)
C++二分查找算法:有序矩阵中的第 k 个最小数组和
|
10月前
|
算法 测试技术 C#
C++二分查找算法:有序矩阵中的第 k 个最小数组和(二)
C++二分查找算法:有序矩阵中的第 k 个最小数组和
|
算法
算法篇之二分查找(第74题探索二维矩阵、第287题寻找重复数)
算法篇之二分查找(第74题探索二维矩阵、第287题寻找重复数)
105 0
7-234 两个有序序列的中位数
7-234 两个有序序列的中位数
107 0
|
算法
算法练习——(8)用下标排序
问题:给你n个无序的int整型数组arr,并且这些整数的取值范围都在0-20之间,要你在 O(n) 的时间复杂度中把这 n 个数按照从小到大的顺序打印出来。