python 有序矩阵搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 有序矩阵搜索相关的知识,希望对你有一定的参考价值。

"""
input: sorted Matrix, key
output: key in Matrix ?

solution: search from right-up position
"""

def find(Matrix, key) -> bool:
    width, height = len(Matrix[0]), len(Matrix)
    startX = 0
    startY = width - 1
    while 0 <= startX < height and 0 <= startY < width and Matrix[startX][startY] != key:
        if Matrix[startX][startY] > key:
            startY -= 1
        else:
            startX += 1
    if not (0 <= startX < height and 0 <= startY < width):
        return False
    return True

def main():
    matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    if find(matrix, 7):
        print("7 is in matrix")
    if not find(matrix, 10):
        print("10 is not in matrix")

if __name__ == "__main__":
    main()

以上是关于python 有序矩阵搜索的主要内容,如果未能解决你的问题,请参考以下文章

java 在有序矩阵中搜索

LeetCode 378. 有序矩阵中第K小的元素 | Python

二维数组3:搜索二维矩阵

240. 搜索二维矩阵 II

LeetCode74. 搜索二维矩阵

python算法题---搜索二维矩阵