《劍指offer》4:二維陣列查詢
阿新 • • 發佈:2020-08-08
一.題目描述
在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
二.題目解析
首先這個題目我們需要弄清楚題目的題意就很簡單了,題目的意思不是讓我們自己編寫一個這樣的二維陣列,而是已經給定了我們這樣的一個二維陣列,和一個數值,讓我們去查詢這樣的一個數值會不會出現在這個二維陣列當中,那麼二維陣列是長什麼樣的呢?在Python當中使用了兩層列表進行了巢狀,如下所示:
[[1,2,3],
[4,5,6],
[7,8,9]]
而題目當中所描述的陣列我們可以給出一個簡單的例子,如下:
[[1,2,3],
[2,3,4],
[3,4,5]]
這樣就可以保證在陣列當中既能夠從左向右遞增,也可以從上到下遞增了。
這裡給出解法。
解法:
使用迴圈遍歷二維陣列當中的每一個值,檢視是否有目標數值,有則返回True,沒有則什麼都不做。程式碼如下:
# -*- coding:utf-8 -*- class Solution: # array 二維列表 def Find(self, target, array): # write code here i=0 while i<len(array): j=0 while j <len(array[i]): if target==array[i][j]: return True j+=1 i+=1
最後通過的時間和記憶體佔用如下:
非常簡單,算是劍指offer裡面最簡單的題目了。