Longest Subarray of 1's After Deleting One Element
MediumArrayDynamic ProgrammingSliding Window
Solution
import { range } from '@algorithm/lib';
export function longestSubarray(nums: number[]): number {
const n = nums.length;
let answer = 0;
let left = 0;
let zeroCount = 0;
for (const right of range(n)) {
zeroCount -= nums[right] - 1;
while (1 < zeroCount) {
zeroCount += nums[left] - 1;
left += 1;
}
answer = Math.max(answer, right - left);
}
return answer;
}