剑指offerJava实现 二维数组的查找
2016-05-22 11:55
453 查看
序言
剑指offer上的题都非常经典,而且在一些大公司,也会出剑指offer上的原题,所以无论从研究和锻炼自己算法能力的还是提升自己求职竞争力的角度来说,都是非常有帮助的。题目描述
在一个二维数组中,每一行都是从左到右递增,每一列都是从上到下递增,请完成一个函数,输入这样的二维数组和一个整数,判断数组中是否有该整数。1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
解题思路
首先我们选取数组中的右上角,当数组比整数大的时候,我们删除一行列,如果数组比整数小的时候,我们往下移动一行。这样我们就能找到自己所要找的整数代码实现
package com.test.kemiki; public class one { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int arr[][] =new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; System.out.println(find(arr, 3,4,4)); } /** * * @param arr 数组 * @param number 要查找的数字 * @param col 列 * @param row 行 * @return */ public static boolean find(int [][] arr,int number,int col,int row){ if(arr!=null && col>0 && row>0){ int rows=0; int cols=col-1; while(arr!=null&&rows<row &&cols>0){ if(arr[rows][cols]==number){ return true; }else if(arr[rows][cols]>number){ --cols; }else{ ++rows; } } } return false; } }
输出结果
最终输出结果true。相关文章推荐
- 【HTML/CSS】浮动结构深入浅出
- 多进程中的SharedPreferences
- CSS伪类选择器 -- nth-child(an+b):
- 前端性能优化
- jother编码
- JavaScript-获取固定格式日期(2016-05-22)以及"连续"获取前一天、后一天的方法总结
- 117. Populating Next Right Pointers in Each Node II
- pyspider 爬虫教程(一):HTML 和 CSS 选择器
- ZOJ2314Reactor Cooling(无源汇上下界可行流)
- 跟angular2学一键开启项目--关于上个react-redux项目的一键调试
- 剑指offer12--找到链表中倒数第k个节点
- 从HTML生成PDF文件
- 剑指offer(三十)之扑克牌顺子
- jquery 根据样式获取对象子元素的第一个并添加触发事件
- 116. Populating Next Right Pointers in Each Node
- jquery.validate.js校验select2解决方案 Jquery插件select2校验解决方案
- jsp ${param.id}用法
- jsp base标签与meta标签学习小结
- 为什么苹果的利润不会受HTML5影响?
- StrBuffer 类的应用---暗文的解密