91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python實現楊氏矩陣查找

發布時間:2020-08-24 17:27:36 來源:腳本之家 閱讀:182 作者:ZzzMxin 欄目:開發技術

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

問題描述:

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

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

AC代碼以右上角為例:

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

代碼如下:

# coding=utf-8
import sys

def 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())

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北安市| 中西区| 天门市| 延庆县| 泰顺县| 江西省| 呼图壁县| 固原市| 台中市| 沂南县| 扎赉特旗| 渝北区| 高邑县| 于都县| 莫力| 南投县| 宁武县| 应城市| 巴南区| 德钦县| 定结县| 聂荣县| 益阳市| 花垣县| 利辛县| 吴江市| 丹江口市| 丰城市| 阿图什市| 加查县| 安义县| 房产| 宣汉县| 上饶县| 抚宁县| 志丹县| 青阳县| 奎屯市| 集安市| 天水市| 沙雅县|