• 剑指offer_二维数组的查找


    题目来源:二维数据的查找

     自我感觉难度/真实难度:               写题时间时长:

     题意:

    在二维数组中,从左到右递增,从上到下递增。给一个数字,问你是否在矩阵中。

     分析:

     自己的代码:

    代码效率/结果:

     优秀代码:

    # -*- coding:utf-8 -*-
    class Solution:
        # array 二维列表
        def Find(self, target, array):
            # write code here
            weight=len(array[0])-1
            hight=len(array)-1
            i=hight
            j=0
            while i>=0 and j<=weight:
                if array[i][j]>target:
                    i-=1
                elif array[i][j]<target:
                    j+=1
                else:
                    return True
            return False
    class Solution {
    public:
        bool Find(int target, vector<vector<int> > array) {
            int col=array[0].size()-1;
            int row=array.size()-1;
            int i=row;
            int j=0;
            while(i>=0 && j<=col){
                if(target<array[i][j]) i--;
                else if(target>array[i][j]) j++;
                else if(target==array[i][j]) return true;
                
            }
            return false;
        }
    };

    代码效率/结果:

     自己优化后的代码:

     反思改进策略:

    1.二维数组的搜索,可以从四个角开始。观察哪一个角是开始的。在这道题目中,是从左下角开始,因为可以每一步只有一个方向移动

  • 相关阅读:
    7.Linux学习
    5.@AliasFor注解
    5.Maven学习
    3.postman
    4.git总结
    8.Docker学习
    6.idea教程
    2.jwt
    4.open feign
    1.MarkDown常规使用语法
  • 原文地址:https://www.cnblogs.com/captain-dl/p/11113589.html
Copyright © 2020-2023  润新知