Maximum Value at a Given Index in a Bounded Array LeetCode solution in Python
1class Solution:2def maxValue(self, n: int, index: int, maxSum: int) -> int:3l = 14r = int(1e9)5ans = 067while l <= r:8mid = (l + r) // 29total = 01011# add left numbers12if mid >= index + 1:13first = mid - index14size = index + 115total += first * size + size * (size - 1) / 216else:17total += mid * (mid + 1) / 218total += index + 1 - mid1920# add right numbers21size = n - index22if mid >= size:23last = mid - (n - index - 1)24total += last * size + size * (size - 1) / 225else:26total += mid * (mid + 1) / 227total += size - mid2829# deduct mid because it was added twice30total -= mid3132if total <= maxSum:33ans = max(ans, mid)34l = mid + 135else:36r = mid - 13738return ans