1タイトル説明
(同一の各一次元アレイの長さ)は、上から下に増加する順に、二次元アレイの各列をソートし、ソート昇順の順に左から右へ、各行。完全な機能は、そのような二次元アレイと整数を入力し、配列の整数が含まれているか否かが判断されます。
2暴力的な問題解決
2.1分析
見つかった場合は、配列を1つずつが、それはtrueを返す、配列全体が、それはfalseを返し、見つからない検索。
2.2コード
class Solution:
# array 二维列表
def Find(self, target, array):
for i in array:
for j in i:
if j == target:
return True
return False
2.3複雑
時間計算:
宇宙の複雑さ:
探し始めるための右上隅から3
3.1分析
条件は、配列が左から右に増分され、上から下へインクリメント与えられ、
行最大値の各行の一番右の要素であること;
分析は:
この値は、ターゲットに等しい、trueを返し、
この値は以下の標的よりも、除外します1行下の行、;
この値が目標よりも大きい場合、列は除外され、左;
3.2コード
class Solution:
# array 二维列表
def Find(self, target, array):
rows = len(array)
cols = len(array[0])
i = 0
j = cols - 1
while i<rows and j>=0:
if array[i][j] == target:
return True
elif array[i][j] < target:
i = i + 1
elif array[i][j] > target:
j = j - 1
return False
3.3複雑
時間の複雑さ:O(行+ colsの)
複雑スペース:O(1)