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

下面我先讲一下这道题的做题思路:
因为这个数组的自左往右,自下往上都是递增的,所以上面数字的是每一列最小的。
由此,比查找的数大的话,我们应该让行数增加(++row),比它小,我们应该让列数减一(- -col)
下面我画图给大家看一下这道题的思路
在这里插入图片描述
下面是java代码,但是核心代码和C语言一样,大家可以借鉴一下,如果有问题,在评论区留言,谢谢大家

public class Solution {   
   public boolean Find(int target, int [][] array) {     
       int row=array.length;     
       int col=array[0].length;      
       row=0;     
       while(row<array.length&&col-1>=0)   
	{ 	
		if(target==array[row][col-1])           
			return true;       
		else if (target<array[row][col-1])           
			 --col;  
  		else      
  		         ++row;                       
	}     
	 return false;  
	  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值