二维数组中元素的查找

题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排列。求该二维数组中是否存在给定数字number。


解题思路:

  • 因为二维数组从左到右、从上到下都是递增有序的,因此我们可以从右上角开始比对,如果目标数字number大于二维数组右上角的数字m,则目标数字不会出现在m所在行,所以将m所在行砍掉;如果number小于m,说明number不会出现在m所在列,则将m所在列砍掉。
  • 之后让目标数字number与新的右上角元素进行比较,如此循环,直到找到目标数字或二维数组为空。

代码实现:

	 /**
     * 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排列。求该二维数组中是否存在给定数字number
     * @param arrays    待检查二维数组
     * @param number    查找的目标数字
     * @return  返回是否找到
     */
    public static boolean findNum(int[][
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值