二维数组中的查找
题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路
在二位数组中查找,由于数组是有顺序的,所以在右上角或者左下角开始查找,每次比较大小都能排除一行或者一列,一直循环找下去即可。
做法:采用while循环,每比较一次就按查找的目标前进一行或者一列
function Find(arr, target) {
let row = arr.length; // 列数
let i = row - 1;
let j = 0;
while(row >= 0 && arr[i][j]) {
if(arr[i][j] < target) {
j++;
} else if(arr[i][j] > target) {
i--;
} else {
return true;
}
}
return false;
}
Find([[1,2,8,9],[2,4,9,12],[4,7,10,13]],10)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 你真的了解 instanceof 吗?
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论