본문 바로가기
LeetCode

[LeetCode] 53. Maximum Subarray

by JungSeung 2023. 12. 22.
728x90

https://leetcode.com/

Given an integer array nums, find the subarray with the largest sum, and return its sum.


Example 1:

Input: nums = [-2,1,-3,4,-1,2,1,-5,4]
Output: 6
Explanation: The subarray [4,-1,2,1] has the largest sum 6.

 

Example 2:

Input: nums = [1]
Output: 1
Explanation: The subarray [1] has the largest sum 1.

 

Example 3:

Input: nums = [5,4,-1,7,8]
Output: 23
Explanation: The subarray [5,4,-1,7,8] has the largest sum 23.

 

Constraints:

  • 1 <= nums.length <= 10^5
  • -10^4 <= nums[i] <= 10^4

 

Code :

var maxSubArray = function(nums) {
    // 최대 부분 배열의 합을 저장할 변수를 선언합니다.
    let maxSum = nums[0];
    // 현재까지의 부분 배열의 합을 저장할 변수를 선언합니다.
    let currentSum = nums[0];
    // 배열의 두 번째 요소부터 순회하면서 최대 부분 배열의 합을 찾습니다.
    for (let i = 1; i < nums.length; i++) {
        // 현재 요소를 현재까지의 부분 배열의 합에 더합니다.
        // 다만, 현재 요소 자체가 더 큰 경우에는 현재 요소부터 새로운 부분 배열을 시작합니다.
        currentSum = Math.max(nums[i], currentSum + nums[i]);
        // 최대 부분 배열의 합을 갱신합니다.
        maxSum = Math.max(maxSum, currentSum);
    }
    // 최대 부분 배열의 합을 반환합니다.
    return maxSum;
};

 

Solutions Code :

var maxSubArray = function(nums) {
    // 최대 서브어레이 합을 저장하는 변수
    let max = -Infinity;
    // 현재까지의 부분 합을 저장하는 변수
    let meh = 0;
    // 배열을 순회하면서 최대 서브어레이 합 계산
    for (let i = 0; i < nums.length; i++) {
        // 현재 숫자를 부분 합에 추가
        meh += nums[i];
        // 현재까지의 부분 합이 최대 합을 초과하면 최대 합 갱신
        if (meh > max) {
            max = meh;
        }
        // 만약 현재까지의 부분 합이 음수가 되면 0으로 초기화
        if (meh < 0) {
            meh = 0;
        }
    }
    // 최대 서브어레이 합 반환
    return max;
};

 

 

출처 : https://leetcode.com/problemset/all/

 

Problems - LeetCode

Boost your coding interview skills and confidence by practicing real interview questions with LeetCode. Our platform offers a range of essential problems for practice, as well as the latest questions being asked by top-tier companies.

leetcode.com

 

728x90

'LeetCode' 카테고리의 다른 글

[LeetCode] 54. Spiral Matrix  (2) 2023.12.26
Leethub 연동 에러 및 해결 방법  (2) 2023.12.22
[LeetCode] 52. N-Queens II  (2) 2023.12.22
[LeetCode] 51. N-Queens  (0) 2023.12.21
[LeetCode] 5. Longest Palindromic Substring  (0) 2023.11.15