《剑指offer》 二维数组中的查找

我会带着你远行 2022-05-23 01:58 386阅读 0赞

题目描述

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

思路:

因为二维数组向右递增,向下递增,所以可以在左下角开始寻找,如果比目标数大,则往上一行,如果比目标数小,则往右一列

JavaScript:

  1. function Find(target, array)
  2. {
  3. var row = array.length-1;
  4. for (var i=row,j=0;i>=0 && j<array[i].length;) { //从最左下角开始
  5. if (array[i][j] === target) {
  6. return true;
  7. }else if (array[i][j] > target) {
  8. i--; //如果比目标数大,则往上一行
  9. continue;
  10. }else if (array[i][j] < target) {
  11. j++; //如果比目标数小,则往右一列
  12. continue;
  13. }
  14. }
  15. return false;
  16. }

Java:

  1. public class Solution {
  2. public boolean Find(int target, int [][] array) {
  3. int row = array.length-1;
  4. for (int i=row,j=0;i>=0 && j<array[i].length;) { //从最左下角开始
  5. if (array[i][j] == target) {
  6. return true;
  7. }else if (array[i][j] > target) {
  8. i--; //如果比目标数大,则往上一行
  9. continue;
  10. }else if (array[i][j] < target) {
  11. j++; //如果比目标数小,则往右一列
  12. continue;
  13. }
  14. }
  15. return false;
  16. }
  17. }

发表评论

表情:
评论列表 (有 0 条评论,386人围观)

还没有评论,来说两句吧...

相关阅读

    相关 offer数组查找

    描述 在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和

    相关 offer数组查找

    在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 ---

    相关 offer数组查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个

    相关 offer数组查找

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中

    相关 offer数组查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整