forked from DaleStudy/leetcode-study
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclara-shin.js
More file actions
24 lines (21 loc) ยท 948 Bytes
/
clara-shin.js
File metadata and controls
24 lines (21 loc) ยท 948 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
* ์ต๋ ๋ถ๋ถ ๋ฐฐ์ด ํฉ(Maximum Subarray) ๋๋ ์นด๋ฐ์ธ ์๊ณ ๋ฆฌ์ฆ(Kadane's Algorithm)
* ์ ์ ๋ฐฐ์ด์ด ์ฃผ์ด์ก์ ๋, ํฉ์ด ์ต๋๊ฐ ๋๋ ์ฐ์๋ ๋ถ๋ถ ๋ฐฐ์ด์ ์ฐพ์ ๊ทธ ํฉ์ ๋ฐํํ๋ ๋ฌธ์
*
* DP๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ์์น๊น์ง์ ๋ถ๋ถํฉ์ ๊ณ์ฐํ๊ณ , ๊ทธ ์ค ์ต๋๊ฐ์ ๊ฐฑ์ ํ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐ
*/
/**
* @param {number[]} nums
* @return {number}
*/
var maxSubArray = function (nums) {
if (nums.length === 0) return 0; // ๋ฐฐ์ด์ด ๋น์ด์์ผ๋ฉด 0 ๋ฐํ
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;
};