一.題目描述
在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序,請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數,
二.題目決議
首先這個題目我們需要弄清楚題目的題意就很簡單了,題目的意思不是讓我們自己撰寫一個這樣的二維陣列,而是已經給定了我們這樣的一個二維陣列,和一個數值,讓我們去查找這樣的一個數值會不會出現在這個二維陣列當中,那么二維陣列是長什么樣的呢?在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里面最簡單的題目了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/5279.html
標籤:其他
