首页 > 编程语言 > 详细

二维数组中的查找

时间:2021-03-07 21:58:24      阅读:21      评论:0      收藏:0      [点我收藏+]

从左下角开始

public class Solution {
    public boolean Find(int target, int [][] array) {
        int i = array.length-1;
        int j = 0;
        while(i >= 0 && j <= array[0].length-1){
            if(array[i][j] == target){
                return true;
            }
            else if(target < array[i][j]){
                i--;
            }else{
                j++;
            }
        }
        return false;
    }
}

从右上角开始

public class Solution {
    public boolean Find(int target, int [][] array) {
      	int i = 0;//初始化行的值
        int j = array[0].length-1;//初始化列的值
        while(i <= array.length-1 && j >= 0){
            if(array[i][j] == target){
                return true;
            }
            else if(target < array[i][j]){
                j--;
            }else{
                i++;
            }
        }
        return false;
    }
}

我giao。。为何我代码跑不动,额。。是我把他默认成行列都相同了。。吐了吐了,每个一维数组长度相同不代表他是n*n的数组

 //首先判断数组不为空,否则直接返回false
            if(array!=null && array.length > 0 && array[0].length > 0){
                int row = 0; //初始化行的值
                int col = array[0].length - 1; //初始化列的值
                //循环遍历判断,寻找target
                while(row <= array.length-1 && col >= 0){
                    if(target == array[row][col]){
                        return true;
                    }else if(target < array[row][col]){
                        col--;
                    }else{
                        row++;
                    }
                }
            }
            return false;

二维数组中的查找

原文:https://www.cnblogs.com/lightice/p/14495970.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!