반응형
SMALL
문제
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
A subarray is a contiguous part of an array.
Example 1:
Input: nums = [-2,1,-3,4,-1,2,1,-5,4]
Output: 6
Explanation: [4,-1,2,1] has the largest sum = 6.
Example 2:
Input: nums = [1]
Output: 1
Example 3:
Input: nums = [5,4,-1,7,8]
Output: 23
Constraints:
- 1 <= nums.length <= 105
- -104 <= nums[i] <= 104
Follow up: If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.
코드
/**
* @param {number[]} nums
* @return {number}
*/
function maxSubArray(nums) {
let prev = 0;
let max = -Infinity;
for(let i = 0; i < nums.length; i++) {
// prev는 이전 prev에 현재값을 더한거이거나
// prev에 현재값을 더한게
// prev를 현재값으로 새로시작한다
prev = Math.max(prev + nums[i], nums[i])
max = Math.max(max, prev);
}
return max;
}
반응형
LIST
'Coding Interview' 카테고리의 다른 글
[LeetCode] DP, DFS - 22. Generate Parentheses (0) | 2022.10.04 |
---|---|
[LeetCode] DP, String - 5. Longest Palindromic Substring (0) | 2022.10.03 |
알고리즘 유형을 알아보자 (0) | 2022.10.01 |
[LeetCode] DP - 42. Trapping Rain Water (0) | 2022.10.01 |
[LeetCode] BFS - 102. Binary Tree Level Order Traversal (0) | 2022.09.30 |