Minimum Sum of Mountain Triplets I
EasyArray
Solution
export function minimumSum(nums: number[]): number {
const n = nums.length;
const left = [...nums];
const right = [...nums];
for (let i = 1; i < n; i++) {
left[i] = Math.min(left[i], left[i - 1]);
}
for (let i = n - 2; 0 <= i; i--) {
right[i] = Math.min(right[i], right[i + 1]);
}
let answer = Number.MAX_SAFE_INTEGER;
for (let i = 1; i < n - 1; i++) {
if (left[i - 1] < nums[i] && nums[i] > right[i + 1]) {
answer = Math.min(answer, nums[i] + left[i - 1] + right[i + 1]);
}
}
return answer === Number.MAX_SAFE_INTEGER ? -1 : answer;
}