LeetCode 674. Longest Continuous Increasing Subsequence

3500 단어 KotlinLeetCodetech

Question

  • https://leetcode.com/problems/longest-continuous-increasing-subsequence/
  • Given an unsorted array of integers nums, return the length of the longest continuous increasing subsequence (i.e. subarray). The subsequence must be strictly increasing.
    
    A continuous increasing subsequence is defined by two indices l and r (l < r) such that it is [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] and for each l <= i < r, nums[i] < nums[i + 1].
    
    정렬되지 않은 정수 배열nus를 제시했기 때문에 가장 길고 연속적으로 증가하는 부분의 배열 길이를 구하는 문제
    같은 값의 정수 배열은 부분 배열로 간주되지 않는다

    Code


    class Solution {
        fun findLengthOfLCIS(nums: IntArray): Int {
            var subSeqLen = 1
            var tmp = 1
            for (idx in 1..nums.lastIndex) {
                if (nums[idx -1] < nums[idx]) {
                    tmp++
                    if (subSeqLen < tmp) subSeqLen = tmp
                } else {
                    tmp = 1
                }
            }
            return subSeqLen
        }
    }
    
    해답 후 다른 해답을 조사했을 때 CS에서 현저한 문제로 처리된'LIS문제'가 정의한 부분과 배열된 조건이 다르다는 것을 처음 알았다.
    이번에는 부분 배열에 인접한 두 요소 모두subArray[i-1] < subArray[i]

    Profile

  • Runtime: 200 ms
  • Memory Usage: 38.6 MB
  • Submission

  • https://leetcode.com/submissions/detail/597213718/
  • 좋은 웹페이지 즐겨찾기