{ "title": "C++ 代码转换为 Python 代码:二分查找最大可到达高度", "description": "本文展示了将 C++ 代码转换为 Python 代码的示例,该代码使用二分查找算法来找到一个矩阵中最大可到达的高度。", "keywords": "C++ 代码转换,Python 代码,二分查找,最大可到达高度,矩阵", "content": ""python\nfrom collections import deque\n\na = [[0]*1010 for _ in range(1010)]\nvis = [[False]*1010 for _ in range(1010)]\ndir = [[1,0],[-1,0],[0,1],[0,-1]]\n\nclass point:\n def __init__(self, x, y):\n self.x = x\n self.y = y\n\ndef check(mid):\n global n, m, a, vis, dir\n vis = [[False]*1010 for _ in range(1010)]\n q = deque()\n for i in range(1, m+1):\n q.append(point(1, i))\n vis[1][i] = True\n while q:\n h = q.popleft()\n if h.x == n:\n return True\n for i in range(4):\n tx = dir[i][0] + h.x\n ty = dir[i][1] + h.y\n if tx <= 0 or tx > n or ty <= 0 or ty > m or vis[tx][ty] or a[tx][ty] > mid:\n continue\n q.append(point(tx, ty))\n vis[tx][ty] = True\n return False\n\nn, m = map(int, input().split())\nl, r, ans = 1, 0, 1010\nfor i in range(1, n+1):\n a[i] = list(map(int, input().split()))\n r = max(r, max(a[i]))\nwhile l <= r:\n mid = (l + r) // 2\n if check(mid):\n r = mid - 1\n ans = mid\n else:\n l = mid + 1\nprint(ans)\n"}

C++ 代码转换为 Python 代码:二分查找最大可到达高度

原文地址: https://www.cveoy.top/t/topic/qmzt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录