코린이의 소소한 공부노트

[LeetCode/Easy] 1800. Maximum Ascending Subarray Sum 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1800. Maximum Ascending Subarray Sum

무지맘 2023. 4. 21. 10:47

1. Input

1) int[] nums

- nums의 요소들은 양의 정수이다.

 

2. Output

1) nums의 부분 배열 중 오름차순으로 정렬된 것을 찾고, 그 배열의 합 중 가장 큰 것을 반환

 

3. Constraint

Input: nums = [10,20,30,5,10,50] -> Output: 65

설명: [5,10,50]의 합이 가장 크다.

 

4. Example

1) 1 <= nums.length <= 100

2) 1 <= nums[i] <= 100

3) 오름차순 정렬이란 nums[i]<nums[i+1]인 경우를 만한다.

4) 부분 배열은 연속적이어야 한다.

 

5. Code

1) 첫 코드(2023/04/21)

int max = 0;
for(int i=0 ; i<nums.length ; i++){
    int sum = nums[i], j = i+1;
    while(j<nums.length && nums[j-1]<nums[j])
        sum += nums[j++];
    if(max<sum)
        max = sum;
}
return max;