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

二维数组中的查找

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

时间复杂度o(行数+列数)

空间复杂度o(1)

在 java 中,其实只有一维数组,而二维数组是在一维数组中嵌套实现的。

比如 int[][] a = {{},{},{},{}}

要取行数和某一行的列数可以 :

int rowLen = a.length;

int colLen = a[0].length;

    public boolean Find(int target, int [][] array) {
        //获得行数
        int row=array.length;
        //获得列数
        int col=array[0].length;
        int i=0;
        while(i<=row-1&&col-1>=0){
            if(array[i][col-1]<target){
                i++;
            }else if(array[i][col-1]>target){
                col--;
            }else{
                return true;
            }
        }
        return false;

    }
        //获得行数
//         int rows=array.length;
//          if(rows==0){
//              return false;
//          }
//         //获得列数
//         int cols=array[0].length;
//          if(cols==0){
//              return false;
//          }
//         int row=0;
//         int col=cols-1;
//         while(row<rows&&col>=0){
//             if(array[row][col]<target){
//                 row++;
//             }else if(array[row][col]>target){
//                 col--;
//             }else{
//                 return true;
//             }
//         }
//         return false;
//     }
        
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 18:54
说等下个版本吧的发呆爱好者很贪睡:佬最后去了哪家呀
点赞 评论 收藏
分享
Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
宇智波爱学习:我还没收到笔试
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务