每日AC-剑指offer-数组查找
来源:互联网 发布:怎么打开tcp端口1433 编辑:程序博客网 时间:2024/06/05 00:23
每日AC-剑指offer-数组查找
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
看源码:
/** * 类说明 * * <pre> * Modify Information: * Author Date Description * ============ =========== ============================ * DELL 2017年4月27日 Create this file * </pre> * */public class Jianzhiofferchazhaoshuzu { public static boolean Find(int target, int [][] array) { /**特定序列数:数组查找原理: * 1, 2 , 4 * 2 ,3, 5 * 4, 6, 7 * 随便找一个 3 ,从array[0][2]开始找 * 1. 比4小 列数减去1 从array[0][1] 找 * 2. 比2大行数加1 从array[1][1]找,找到了 * 总结一句话就是 ,比当前值小,列数减去1 ;比当前值大, 行数加1 */ boolean found = false; int rows = array.length; int columns = array[0].length; // 从第一行最后一列开始找 int i = 0; int j = columns-1; while(i < rows && j >=0){ if(array[i][j] == target){ found = true; break; }else if(array[i][j] < target){ i++; }else{ j--; } } return found; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int [][] array ={ {1,2,4}, {2,3,5}, {4,5,7} };// for(int i = 0; i <array.length; i++){//行数// for(int j = 0; j <array[0].length; j++){//列数// System.out.print(array[i][j]+" ");// }// System.out.println();// } boolean ans = Find(9,array); System.out.println(ans); }}
0 0
- 每日AC-剑指offer-数组查找
- 每日AC-剑指Offer -旋转数组查找最小值
- 剑指offer-数组查找
- 每日AC-剑指Offer 链表中倒数第k个结点
- 剑指offer-二维数组查找
- 剑指Offer--二维数组查找
- 剑指offer 二维数组查找
- [剑指Offer]二维数组查找
- 剑指offer--<二维数组查找>
- 剑指offer-->二维数组中的查找
- 剑指offer之二维数组中的查找
- 剑指offer:3-二维数组中的查找
- [剑指Offer]二维数组中的查找
- 【剑指offer】二维数组中查找_03
- 【剑指offer】二维数组中的查找
- 【剑指offer】二分查找二维数组
- [剑指Offer]二维数组中的查找
- 剑指Offer:二维数组中的查找
- 11、React系列之--state状态
- 使用VS调试Unity脚本
- Android SQLite数据库—表已建好
- Tomcat服务脚本
- 落叶高精度表达式计算器1.2版
- 每日AC-剑指offer-数组查找
- leetcode2
- Maven实战 --- dependencies与dependencyManagement
- XDU-2017省赛选拔第一场
- 点激光基准建立(等价深度计算)
- MySQL 函数和操作符
- 算法导论 练习题 10.4-6
- JAVA语言基础
- C语言数据结构——桟、桟的顺序存储结构表示