๐Ÿ”’Algorithm

LeetCode[JS] 53๋ฒˆ Maximum Subarray

devWarrior 2025. 3. 11. 21:53

๐Ÿ’ก๋ฌธ์ œ๋งํฌ

https://leetcode.com/problems/maximum-subarray/description/

๐Ÿ”จํ’€์ด

์ฒ˜์Œ์— dp๋กœ ํ’€์–ด์•ผ ๋˜๋‚˜ ํ•˜๋ฉด์„œ ์ ‘๊ทผํ–ˆ๋˜๊ฑฐ ๊ฐ™์€๋ฐ ํ•œ์ฐธ์„ ๋šซ์–ด์ ธ๋ผ ์ฒ˜๋‹ค๋ณด๋‹ˆ ๊ทœ์น™์„ฑ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. nums ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ max๊ฐ’์„ ๊ฐฑ์‹ ํ•˜๊ณ  ๋งŒ์•ฝ ๋‹ค์Œ ์ˆ˜๋ฅผ ๋”ํ–ˆ์„ ๋•Œ 0์ดํ•˜์ด๋ฉด ์—ฌํƒœ ๋”ํ•œ sum๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด ๋œ๋‹ค.  

/**
 * @param {number[]} nums
 * @return {number}
 */
var maxSubArray = function(nums) {
    let max = nums[0]
    let sum = nums[0]
    let length = nums.length
    for(let i=1; i<length; ++i){
        if(sum<=0){
            sum=0
        }
        sum = sum + nums[i]
        max =Math.max(sum,max)
    }
    return max
};