算法-数组-二维数字中的查找
来源:互联网 发布:杀敌算法 下载 编辑:程序博客网 时间:2024/06/10 08:50
问题描述:每行从左到右,每列从上到下递增的二维数组中,判断某个数是否存在。
1 2 8 9
2 4 9 12
4 7 10 13
6 8 11 15
7 9 12 18
思路 :从右上角开始呢?以上的矩阵,假如我们查找的是7,从右上角开始,先比较9和7,9比7大,9又是本列的第一个,那么可以确定,9所在的列数字都大于7,我们可以排除最后一列,前移一列。比较8和7,8大于7,同样的思想我们可以排除8所在的列。接下来比较2和7,2小于7,那么2所在的行前面的数字都小于7,可以不必再比较了,直接排除2所在的行。以此类推,我们很快就可以定位到7.
<script type="text/javascript"> let arr1 = [[1, 2, 8, 9], [2, 4, 9, 12], [4, 7, 10, 13], [6, 8, 11, 15],[7, 9, 12, 18]]; function findNumber (num, arr) { let rows = arr.length; let columns = arr[0].length; let found = false; if(typeof num === 'number' && rows > 0 && columns > 0) { let row = 0; let column = columns - 1; while(row < rows && column >= 0) { if(arr[row][column] == num) { found = true; break; } else if(arr[row][column] > num) { column --; } else(arr[row][column] < num) row ++; } } return found; } console.log(findNumber(14, arr1)); </script>
0 0
- 算法-数组-二维数字中的查找
- 【算法】二维数组中的查找
- 算法-二维数组中的查找
- 算法练习一:二维数组中的查找
- 【算法训练营】二维数组中的查找
- 算法学习之二维数组中的查找
- 算法学习之二维数组中的查找
- 二维数组查找算法
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- codevs 均分纸牌 1098
- bzoj 3211 树状数组+并查集
- Javascript数组中的按值传递
- NLP︱高级词向量表达(二)——FastText(简述、学习笔记)
- 数据结构之简单算法学习
- 算法-数组-二维数字中的查找
- 集合接口collection与Map接口
- JSP基本语法
- Codeforces Round #395 (Div. 2) D Timofey and rectangles(思维题)
- ZOJ3331-Process the Tasks(双塔DP)
- 协同过滤推荐算法总结
- Ubuntu16安装搜狗拼音输入法
- http://blog.csdn.net/bat67/article/details/52145331
- jsp与servlet中文乱码问题