二维数组中的查找
来源:互联网 发布:复杂sql 语句编写经验 编辑:程序博客网 时间:2024/06/06 07:07
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。形如:
1 2 34
5 6 78
9 10 1112
13 14 1516
解法1:
利用两层循环遍历整个二维数组,时间复杂度为O(n^2)
解法2:
观察二维数组,发现数组有序,所以如果选择左下角(右上角)的节点,那么目标数当小于这个数的时候我们就向上一行,当目标数大于这个数的时候我们就向右遍历,可以减少一定的遍历次数.
代码如下:
public boolean Find(int[][] array, int target) { int row = array.length - 1; int col = 0; int end = 0; while (true) { if (end < array.length && array[end].length != 0 && target > array[end][array[end].length - 1]) { end++; } else { break; } } while (row >= end && col != array[end].length) { //首先找到合适的左下角开始点 if (target < array[row][col]) { row--; } else if (target > array[row][col]) { col++; } else { return true; } } return false; }
0 0
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- Mac彻底卸载Android Studio
- pygit2/mysql.connector更新git的日志数据
- Linux简单操作命令行之二,权限及所有物命令
- iOS开发基本功的那些事儿(未完待续)
- LeetCode 441 Arranging Coins
- 二维数组中的查找
- python基本爬虫实现
- 程序员面试金典: 9.13 C和C++ 13.1 用C++方法,打印输入文件的最后K行。
- UGUI研究之Sprite
- WINDWOS编程学习1:WINMsg
- 微信小程序 —— 开发者初步
- js的call函数"源码"
- 全排列
- WINDOWS编程学习2:C windwos编程中常用的头文件的说明