国产探花免费观看_亚洲丰满少妇自慰呻吟_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())

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘乡市| 新源县| 建宁县| 恩施市| 共和县| 南和县| 井冈山市| 阳春市| 阿克陶县| 铁岭县| 恩平市| 咸阳市| 噶尔县| 汶上县| 虎林市| 专栏| 丹江口市| 虹口区| 双牌县| 凯里市| 宿松县| 鱼台县| 古田县| 滕州市| 湖南省| 宜城市| 甘洛县| 冕宁县| 桓台县| 兴城市| 绥德县| 东台市| 深水埗区| 什邡市| 景泰县| 文安县| 民县| 池州市| 贵州省| 郑州市| 黑龙江省|