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

分析:关键点:每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。从关键点我们需要思考其规则:右边的大于左边的,下面的大于上面的。入手点:四个角;左上角:右面下面都是递增,即查找点在右面下面都有可能,不可行;右上角:向下递增,向左递减,也就是说,待查找点比此角的值大,向下走,比此点的值小,向左走,可行,舍弃左上角的点。左下角与此类似。右下角与左上角类似。所以,从右上角或左下角入手。

public class Solution04 {
boolean find(int[][] matrix, int number) {
if (matrix == null || matrix.length <= 0 || matrix[0].length <= 0) {
return false;
}
int row = matrix.length - 1;
int col = 0;
while (row >= 0 && col < matrix[0].length) {
if(matrix[row][col]==number){
return true;
}
if(matrix[row][col]<number){
col++;
}else{
row--;
}
}
return false;
} public static void main(String[] args) {
Solution04 solution03 = new Solution04();
System.out.print(solution03.find(new int[][]{{3, 2, 1},{ 6, 4, 5}}, 7));
}
}

最新文章

  1. redis的数据类型和指令
  2. 删除表空间时,遇到了ORA-14404错误
  3. Android端通过HttpURLConnection上传文件到服务器
  4. 【大话QT之十】实现FTP断点续传(需要设置ftp服务器为“PASV”被动接收方式)
  5. thickbox 关于动态生成 无法跳出弹出框的问题
  6. Anisotropic gauss filter
  7. DeNA/上海纵游通过使用AWS大量缩短新款游戏和服务的上线时间
  8. gulp简单使用小记
  9. mvc图片地址
  10. 面试的妹纸问我:web缓存设置不是后台的事情吗?
  11. C# 7 局部函数剖析
  12. turtle文库 ——python
  13. SDKmanager的位置
  14. Go语言学习之11 日志收集系统kafka库实战
  15. struts2实现文件上传和下载
  16. udp_client函数
  17. javascript闭包—围观大神如何解释闭包
  18. java数据结构之hashMap
  19. suoi31 最近公共祖先2 (倍增lca)
  20. nodejs基础 -- 路由

热门文章

  1. win32 寄存器
  2. ASP.NET MVC Identity 兩個多個連接字符串問題解決一例
  3. asp.net 中文部分显示问号
  4. VC++编译出错:LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  5. linux php扩展安装gettext
  6. 使用Jenkins进行android项目的自动构建(6)
  7. 合并百度影音的离线数据 with python 2.3 格式更新
  8. Java 游戏报错 看不懂求教
  9. Docker 启动时报错:iptables:No chain/target/match by the name
  10. JS concat() 方法