国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python實現楊氏矩陣查找

2020-02-16 01:27:39
字體:
來源:轉載
供稿:網友

本文實例為大家分享了python實現楊氏矩陣查找的具體代碼,供大家參考,具體內容如下

問題描述:

在一個m行n列二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。有則返回1,無則返回0,輸入錯誤返回input error

問題分析:根據楊氏矩陣的規律可知,左上角是最小元素,右下角是最大元素,進行比較一次只能排除一個。而利用左下角或者右上角對比,一次可以排除一行或一列。

AC代碼以右上角為例:

當右上角大于要查找的數字時,排除一行; 當右上角大于要查找的數字時,排除一列; 相等則返回1 全部查找失敗則返回0

代碼如下:

# coding=utf-8import sysdef solve():  try:    # 獲取行(n)和列(m)    a = sys.stdin.readline().split()    n, m = int(a[0]), int(a[1])    arr = []    for i in range(n):      # 列表模擬二維數組      p = list(map(int, sys.stdin.readline().split()))      arr.append(p)    # 獲取要查找的數    s = int(sys.stdin.readline().strip())    i = 0    j = m - 1    while i<n and j>=0:      if arr[i][j] == s:        # 相等返回1查找成功        return 1      elif arr[i][j] < s:        # 小于要查找的元素,行加1        i += 1      else:        # 大于要查找的元素,列加1        j -= 1    return 0  except Exception:    return "input error"if __name__ == "__main__":  print(solve())

如有疑問,歡迎交流和指正。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 司法| 巴楚县| 元朗区| 平定县| 惠州市| 昌吉市| 留坝县| 合川市| 武汉市| 通榆县| 山阴县| 镇雄县| 金坛市| 福泉市| 女性| 四川省| 健康| 承德市| 抚顺市| 长垣县| 丰都县| 雅安市| 合川市| 阿坝县| 甘肃省| 富平县| 敦煌市| 阿图什市| 腾冲县| 格尔木市| 景德镇市| 呼伦贝尔市| 会同县| 临沭县| 泰和县| 迭部县| 广宗县| 平阳县| 泗水县| 弥勒县| 儋州市|