[LeetCode] Longest Continuous Increasing Subsequence

아르당·2026년 2월 13일

LeetCode

목록 보기
148/213
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

정렬되지 않은 정수 배열 nums가 주어졌을 때, 가장 긴 연속 증가 부분 수열(즉, 부분 배열)의 길이를 반환해라. 부분 수열은 반드시 엄격하게 증가해야 한다.

연속적으로 증가하는 부분 수열은 두 개의 인덱스 l과 r(l < r)로 정의되며, 이는 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]]이고 각 l <= i < r에 대해 nums[i] < nums[i + 1]이다.

Example

#1
Input: nums = [1, 3, 5, 4, 7]
Output: 3
Explanation: 가장 긴 연속 증가 부분 수열은 길이가 3인 [1, 3, 5]이다. [1, 3, 5, 7]은 증가 부분 수열이지만, 5와 7 사이에 4가 있어서 연속적이지 않다.

#2
Input: nums = [2, 2, 2, 2, 2]
Output: 1
Explanation: 가장 긴 연속 증가 부분 수열은 길이가 1인 [2]이다.

Constraints

  • 1 <= nums.length <= 10^4
  • -10^9 <= nums[i] <= 10^9

Solved

class Solution {
    public int findLengthOfLCIS(int[] nums) {
        int result = 0;
        int cnt = 0;

        for(int i = 0; i < nums.length; i++){
            if(i == 0 || nums[i - 1] < nums[i]) result = Math.max(result, ++cnt);
            else cnt = 1;
        }

        return result;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글