剑指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.二维数组的搜索,可以从四个角开始。观察哪一个角是开始的。在这道题目中,是从左下角开始,因为可以每一步只有一个方向移动

原文地址:https://www.cnblogs.com/captain-dl/p/11113589.html