Notice
250x250
Recent Posts
Recent Comments
Link
넘치게 채우기
[LeetCode] 1800. Maximum Ascending Subarray Sum 본문
728x90
반응형
https://leetcode.com/problems/maximum-ascending-subarray-sum/description/
leetcode - Maximum Ascending Subarray Sum
문제 유형: 슬라이딩 윈도우
문제 난이도: Easy
문제
Given an array of positive integers nums, return the maximum possible sum of an ascending subarray in nums.
A subarray is defined as a contiguous sequence of numbers in an array.
A subarray [numsl, numsl+1, ..., numsr-1, numsr] is ascending if for all i where l <= i < r, numsi < numsi+1. Note that a subarray of size 1 is ascending.
양의정수 배열 nums가 주어집니다.
엄격한 오름차순의 부분배열의 요소들의 합의 최대값을 구하시오.
풀이
처음에는 nums[0]이 최대값이고, 현재의 부분배열의 총합이다.
i = 1부터 읽으면서,
nums[i]가 nums[i-1]보다 크면 sum을 계속 누적하고, 아니면, sum을 nums[i]로 초기화한다.
그 뒤, 최대값을 갱신한다.
코드
C++
class Solution {
public:
int maxAscendingSum(vector<int>& nums) {
int n = nums.size();
int sum = nums[0];
int ans = sum;
for(int i = 1; i < n; ++i) {
if(nums[i-1] < nums[i]) {
sum += nums[i];
} else sum = nums[i];
ans = max(ans, sum);
}
return ans;
}
};
Go
func maxAscendingSum(nums []int) int {
n := len(nums)
sum := nums[0]
ans := nums[0]
for i := 1; i < n; i++ {
if nums[i] > nums[i-1] {
sum += nums[i]
} else {
sum = nums[i]
}
if ans < sum {
ans = sum
}
}
return ans
}
728x90
반응형
'PS > LeetCode' 카테고리의 다른 글
[LeetCode] 1726. Tuple with Same Product (0) | 2025.02.06 |
---|---|
[LeetCode] 1790. Check if One String Swap Can Make Strings Equal (0) | 2025.02.05 |
[LeetCode] 3105. Longest Strictly Increasing or Strictly Decreasing Subarray (0) | 2025.02.03 |
[LeetCode] 1752. Check if Array Is Sorted and Rotated (0) | 2025.02.02 |
[LeetCode] 3151. Special Array I (0) | 2025.02.01 |