劍指offer 1 二維陣列中的查詢

2021-08-06 07:21:49 字數 1427 閱讀 7103

題目:在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,

輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。

題目:在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,

輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。

思路:從右上角開始查詢, 如果該數字等於要查詢的數字,查詢結束

如果該數字大於要查詢的數字,說明當前列不可能存在這個數;

如果小於要查詢的數字, 說明當前行不可能存在這個數.

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# created by xuehz on 2017/7/15

class

solution:

deffind

(self, array, target):

row = len(array)

column = len(array[0])

if row > 0

and column > 0:

x ,y = 0, column -1

#0,3 找到右上角的數字

while

0<= x and

0<= y < column:

if array[x][y] == target:

return

true

elif array[x][y] > target: # 說明當前列不會有這個數了

y -= 1

elif array[x][y] < target: # 說明當前行不會有這個數了

x += 1

return

false

deffind1

(self, array, target):

flag = false

# 借助於in

for index in range(len(array)):

if target in array[index]:

flag = true

return flag

if __name__ == '__main__':

array_ = [[1, 2, 8, 9],

[2, 4, 9, 12],

[4, 7, 10, 13],

[6, 8, 11, 15],

]s = solution()

print s.find1(array_, 7)

Python 劍指offer(1)二維陣列的查詢

題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。環境python2.7.3 解 coding utf 8 class solution array 二維...

劍指offer 1 二維陣列查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。二維陣列是有序的,比如下面的資料 1 2 3 4 5 6 7 8 9可以直接利用左下角數字開始查詢 大於 比較...

劍指offer 1 二維陣列查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 首先是先模擬獲取隨機遞增陣列 public static int getarray int n,int m 初...