• 《剑指offer》1. 二维数组中的查找【Java+Python】


    二维数组中的查找

    1. 题目描述

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

    2. 示例

    现有矩阵 matrix 如下:

    [ [1, 4, 7, 11, 15],

    [2, 5, 8, 12, 19],

    [3, 6, 9, 16, 22],

    [10, 13, 14, 17, 24],

    [18, 21, 23, 26, 30] ]

    给定 target = 5,返回 true。

    给定 target = 20,返回 false。

    3. 解题思路

    使用以下方法的前提是:该矩阵是有序的。

    从矩阵的左下角开始搜索,即从18 开始查找,如果该数大于目标数,则 行数 减去 1,向上搜索小的数值;

    如果小于目标数,则 列数 + 1 ,向右边搜索,搜索更大的数值

    4. Java实现

    // Java语言实现
    // Java语言实现
    public class Solution {
        public boolean Find(int target, int [][] array) {
            int row = array.length-1;
            int col = 0;  
            // 从左下角开始搜索,array.length 表示行的大小,array[0].length表示列的大小
            
            while (row >= 0 && col <= array[0].length-1){
                if (array[row][col] == target){
                    return true;
                }else if(array[row][col] > target){
                    row--;
                }else{
                    col++;
                }
                
            }
            return false;
     
        }
    }
    

    5. Python实现

    // Java语言实现
    public class Solution {
        public boolean Find(int target, int [][] array) {
            int row = array.length-1;
            int col = 0;  
            // 从左下角开始搜索,array.length 表示行的大小,array[0].length表示列的大小
            
            while (row >= 0 && col <= array[0].length-1){
                if (array[row][col] == target){
                    return true;
                }else if(array[row][col] > target){
                    row--;
                }else{
                    col++;
                }
                
            }
            return false;
     
        }
    }
    

    image.png

  • 相关阅读:
    在循环中禁止remove/add
    [算法竞赛入门]WERTYU
    [算法竞赛入门]Tex Quotes
    [算法竞赛入门]竖式问题
    [算法竞赛入门]蛇形填数
    [C++面试]关于const的使用方法
    [C++面试]单例模式-设计模式
    [C++面试]C++的三种继承(public/protected/private继承)
    用微服务架构,有哪些好处?
    东软数据可视化分析, 已经方便成这样?!
  • 原文地址:https://www.cnblogs.com/junge-mike/p/13509439.html
Copyright © 2020-2023  润新知