Maximum Subarray

Edit

Difficulty: MEDIUM

Categories: λ°°μ—΄/λ¬Έμžμ—΄λ™μ  κ³„νšλ²• (DP)

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


Solutions

Add Solution
JAVA 2026-10-01 12:00 Edit
class Solution {
    public int maxSubArray(int[] nums) {
        int maxSum = nums[0], currentSum = 0;
        for (int num : nums) {
            if (currentSum < 0) currentSum = 0;
            currentSum += num;
            maxSum = Math.max(maxSum, currentSum);
        }
        return maxSum;
    }
}
Notes:

[μžλ™ 풀이 Β· gpt-4.1-mini] ν˜„μž¬ μœ„μΉ˜κΉŒμ§€μ˜ μ΅œλŒ€ 뢀뢄합을 μ €μž₯ν•˜λ©° μ§„ν–‰ν•œλ‹€. μ΄μ „κΉŒμ§€μ˜ μ΅œλŒ€ 뢀뢄합이 음수면 버리고 ν˜„μž¬ μ›μ†ŒλΆ€ν„° μƒˆλ‘œ μ‹œμž‘ν•˜λŠ” 것이 μ΅œλŒ€μ΄λ―€λ‘œ, dp λ°°μ—΄ 없이 λ³€μˆ˜ 두 개둜 μ΅œλŒ“κ°’μ„ κ°±μ‹ ν•œλ‹€. μ‹œκ°„ O(n) Β· 곡간 O(1) 주의: λͺ¨λ“  μˆ˜κ°€ 음수일 λ•Œ 초기 maxSum μ„€μ •κ³Ό currentSum μ΄ˆκΈ°ν™”μ— μ£Όμ˜ν•΄μ•Ό ν•œλ‹€.