<
>

【Python学习-列表-类-循环】【剑指offer】之二维数组中的查找

2020-06-28 14:51:23 来源:易采站长站 作者:易采站长站整理


class Solution:
# array 二维列表
def Find(self, target, array):
# write code here
rows = len(array) - 1
cols= len(array[0]) - 1
i = rows
j = 0
while j=0:
if targetarray[i][j]:
j += 1
else:
return print(True)
return print(False)

shuru = Solution() #创建对象1
shuru.Find(0, [[1, 2, 3], [3, 4, 9]]) # 调用对象功能
shuru1 = Solution() #创建对象2
shuru1.Find(2, [[1, 2, 3], [3, 4, 9]])

打印:

False
True

结果

比较一下两种方法的时间和内存
暴力方法:
在这里插入图片描述
思路二:
在这里插入图片描述

c++版本

class Solution {
public:
bool Find(int target, vector<vector > array) {
// array是二维数组,这里没做判空操作
int rows = array.size();
int cols = array[0].size();
int i=rows-1,j=0;//左下角元素坐标
while(i>=0 && j<cols){//使其不超出数组范围
if(targetarray[i][j])
j++;//查找元素较大,往右找
else
return true;//找到
}
return false;
}
};

结果:
在这里插入图片描述
竖起大拇指!
具体更多参考信息可以参考link。
刚开始学,Python基本的学完了,开始刷编程题。冲鸭!

作者:XueZheng@gdut

暂时禁止评论

微信扫一扫

易采站长站微信账号