题解 | #二维数组中的查找#

二维数组中的查找

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

根据题解,行依次递增,列依次递增,可以考虑从端点开始遍历,一般考虑左下或右上角开始,(因为左上角开始,数字依次增大,无法处理列变量;右下角同理) alt

    public boolean Find(int target, int [][] array) {
          if(array == null || array.length == 0 || array[0].length == 0){
              return false;
          }
          //从右上角开始
            int row = 0, col = array[0].length -1;
            while(row < array.length && col >= 0){
                if(array[row][col] == target){
                    return true;
                }else if(array[row][col] > target){
                //从右往左遍历
                    col--;
                }else {
                //从上往下遍历
                    row++;
                }
            }
            return false;
        }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 17:10
点赞 评论 收藏
分享
陈逸轩1205:才105 哥们在养生呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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