题目来源:二维数据的查找
自我感觉难度/真实难度: 写题时间时长:
题意:
在二维数组中,从左到右递增,从上到下递增。给一个数字,问你是否在矩阵中。
分析:
自己的代码:
代码效率/结果:
优秀代码:
# -*- 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.二维数组的搜索,可以从四个角开始。观察哪一个角是开始的。在这道题目中,是从左下角开始,因为可以每一步只有一个方向移动