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

首頁 > 編程 > Python > 正文

python實現(xiàn)楊氏矩陣查找

2020-01-04 13:33:50
字體:
供稿:網(wǎng)友

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

問題描述:

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

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

AC代碼以右上角為例:

  • 當(dāng)右上角大于要查找的數(shù)字時,排除一行;
  • 當(dāng)右上角大于要查找的數(shù)字時,排除一列;
  • 相等則返回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):      # 列表模擬二維數(shù)組      p = list(map(int, sys.stdin.readline().split()))      arr.append(p)    # 獲取要查找的數(shù)    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())

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黑水县| 永胜县| 定兴县| 佛坪县| 新密市| 乐清市| 东兰县| 成安县| 斗六市| 朝阳市| 文化| 灵璧县| 阳江市| 德昌县| 中方县| 监利县| 栾川县| 英山县| 乌鲁木齐市| 武强县| 荔波县| 上高县| 天祝| 修水县| 剑河县| 德江县| 平安县| 柏乡县| 诸暨市| 于都县| 繁昌县| 界首市| 通州市| 黑河市| 晋州市| 东阳市| 信阳市| 施甸县| 梧州市| 莱阳市| 宜兴市|