剑指Offer-数组
Posted kbinblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer-数组相关的知识,希望对你有一定的参考价值。
题目
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路
- 数组是有序的,所以我们选取左下角或右上角作为一开始判断的依据
- 假设选取左下角作为判断依据,输入的整数大于左下角的值,继续往右判断,小于的话向上一层移动,再继续判断
代码
function Find(target, array)
let len = array.length-1; //数组的行数
let lenCol = array[0].length-1; //数组的列数
if(target<array[0][0] || target>array[len][lenCol]) //进行临界值判断
return false;
let i=len; //最后一行
let j=0; //第一列
while(i>0 && j<lenCol)
if(target>array[i][j])
j++;
if(target<array[i][j])
i--;
if(target === array[i][j])
return true
return false;
以上是关于剑指Offer-数组的主要内容,如果未能解决你的问题,请参考以下文章
刷题记录leetcode 剑指 Offer(第 2 版)03-11
剑指 Offer(第 2 版)完整题解笔记 & C++代码实现(LeetCode版)