[LeetCode] 1800. Maximum Ascending Subarray Sum

Chobby·4일 전
1

LeetCode

목록 보기
607/652

😎풀이

  1. 최대 합은 첫 요소로 정의
  2. 현재 합도 첫 요소로 정의
  3. nums 순회
    3-1. 오름차 순이라면, 누산하며 최댓값 갱신
    3-2. 내림차 순이 되었다면, 현재 합 초기화 후 재개
  4. 탐색된 최대 합 반환환
function maxAscendingSum(nums: number[]): number {
    let maxSum = nums[0]
    let curSum = nums[0]
    for(let i = 1; i < nums.length; i++) {
        const prev = nums[i - 1]
        const cur = nums[i]
        if(prev >= cur) {
            curSum = cur
            continue
        }
        curSum += cur
        maxSum = Math.max(maxSum, curSum)
    }
    return maxSum
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글