Maximum Value at a Given Index in a Bounded Array LeetCode solution in JavaScript
1var maxValue = function (n, index, maxSum) {2function getSum(len, v) {3var sum = 0;4if (len <= v) {5sum = ((2 * v - len + 1) * len) / 2;6} else {7sum = ((1 + v) * v) / 2 + len - v;8}9return sum;10}11function isValid(mid) {12var curSum = getSum(leftLen, mid) + getSum(rightLen, mid) - mid;13return curSum <= maxSum;14}15var l = 0;16var r = 1000000000;17var leftLen = index + 1;18var rightLen = n - index;19while (l < r) {20var mid = Math.ceil((l + r) / 2); // handle dead loop when l===r & l=mid21if (!isValid(mid)) {22r = mid - 1;23} else {24l = mid;25}26}27return l;28};