728x90
[문제] 53. Maximum Subarray
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
[예시]
Input | Output |
[-2,1,-3,4,-1,2,1,-5,4] | 6 |
[1] | 1 |
[5,4,-1,7,8] | 23 |
[풀이]
var maxSubArray = function(nums) {
for(let i = 1; i < nums.length; i++){
nums[i] = Math.max(nums[i], nums[i]+nums[i-1]);
}
return Math.max(...nums)
};
반복문을 돌면서 nums[i]의 값과 nums[i]+nums[i-1]을 비교한다. 그 둘 중 큰 값을 nums[i]에 넣는다.
이렇게하면 기존 값들과 다른 값들을 가진 nums (nums[0] 제외) 가 만들어진다.
이 배열 중에 가장 큰 값을 반환하면 된다.
320x100
'알고리즘 > LeetCode' 카테고리의 다른 글
[파이썬/알고리즘] Leetcode - 937. Reorder Data in Log Files (0) | 2021.07.03 |
---|---|
[파이썬/알고리즘] Leetcode - 1689. Partitioning Into Minimum Number Of Deci-Binary Numb (0) | 2021.06.28 |
[자바스크립트/알고리즘] LeetCode - 회문 정수 (1) | 2021.03.07 |
[자바스크립트/알고리즘] LeetCode - 정렬된 두 리스트 합치기 (0) | 2021.03.07 |