在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。
請寫乙個函式,輸入這樣乙個二維陣列和乙個整數,判斷陣列中是否有該整數。
思路:矩陣是有序的,從左下角來看,向上是遞減的,向右是遞增的。
因此從左下角出發,當目的數字比當前數字大的時候,(右移)就執行向右查詢;當目的數字比當前數字小的時候,就向上繼續查詢(上移)。
1 #!/usr/bin/env python3
2 #-*- coding: utf-8 -*-
3 4 def
find_num(ary, num):
5 row = len(ary) - 1
6 while row >=0 :
7 for i in
range(len(ary[row])):
8 if num ==ary[row][i]:
9 return
true
10 #
如果目的數字小於當前數字,就跳出當前迴圈,上移一行
11 if num 12 break
13 #
如果目的數字大於當前數字,就執行向右查詢。
14 #
如果右移玩一行都沒有找到的話,就上移。
15 if num >ary[row][i]:
16 continue
17 row -= 1
18 return
false
19 20 if
__name__ == '
__main__':
21 a = [[1,3,5],[2,4,6,8]]
22 print(find_num(a, 5))
程式設計題練習 1
思路 建立兩個字元陣列,乙個按順序存放數字,乙個按順序存放字母,然拼接這兩個陣列。其實用string類會更好,這裡用vector輸入的時候帶空格,不過思想是一樣的 include include using namespace std class solution for int i 0 ifor ...
面試程式設計題練習
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。解題思路 利用二維陣列由上到下,由左到右遞增的規律,那麼選取右上角或者左下角的元素a row col 與tar...
程式設計題 練習2 14至2 17
本題要求編寫程式,計算序列 1 1 3 1 5 的前n項之和。輸入在一行中給出乙個正整數n。在一行中按照 sum s 的格式輸出部分和的值s,精確到小數點後6位。題目保證計算結果不超過雙精度範圍。23sum 2.549541 include double computeoddsum int n re...