二维数组中的查找_JAVA_较难

二维数组中的查找

http://www.nowcoder.com/questionTerminal/abc3fe2ce8e146608e868a70efebf62e

  • 该二维数组行列有序,可使用排除思想
  • 从右上角开始,该值为行最大值,列最小值
  • target与之比较,如果找更小值就去行找,所在列全部排除,更大值就去列找,所在行全部排除
public class Solution {
    public boolean Find(int target, int [][] array) {
        int i = 0, j = array[0].length - 1;
        // 右上角开始,行最大值,列最小值
        while(i < array.length && j >= 0) {
            // target小于比较值,就说明不会在该值所在列及右侧
            if(array[i][j] > target) {
                j--;
            // target大于比较值,就说明不会在该值所在行及上侧
            } else if(array[i][j] < target){
                i++;
            } else {
                return true;
            }
        }
        return false;
    }
}
全部评论

相关推荐

求个付费实习岗位:这种就是吃满时代红利又没啥技术水平,只能靠压力学生彰显优越感的老登,别太在意了
点赞 评论 收藏
分享
11-04 19:05
已编辑
东莞城市学院 单片机
不知道怎么取名字_:你这个要实习两年?哪有这么久的,感觉就是即使你毕业了,但还按实习的话,是不是不用给你缴社保公积金啥的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务