Skip to content
Algorithm in JavaScript
Application

3350. Adjacent Increasing Subarrays Detection II

인접한 증가 부분 배열 두 개의 최대 길이를 DP 전처리와 이진 탐색으로 찾아내는 전략과 구현을 정리

Oct 16, 2025 — binary-search

문제 설명

풀이 아이디어

해결 전략

구현

/**
* @param {number[]} nums
* @return {number}
*/
var maxIncreasingSubarrays = function(nums) {
const N = nums.length;
let left = 1;
let right = N;
const dp = Array(N + 1).fill(1);
for (let i = N - 2; i >= 0; i -= 1) {
if (nums[i] < nums[i+1]) dp[i] = dp[i+1] + 1;
}
const isOK = (width) => {
for (let i = 0; i + 2 * width <= N; i += 1) {
if (dp[i] >= width && dp[i + width] >= width) return true;
}
return false;
}
while (left <= right) {
const mid = Math.floor( (left + right) / 2);
if (isOK(mid)) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return right;
};