Algorithm/1일 1코테

[🥰 leetcode] 53. Maximum Subarray

대인보우 2022. 10. 14. 21:39
반응형

 

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

 

Maximum Subarray - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

최댓값이 될 수 있는 연속 서브 배열을 찾아라!

 

나의 풀이

def maxSubArray(self, nums: List[int]) -> int:
        dp = [0 for _ in range(len(nums))]
        
        for i, n in enumerate(nums):
        	# 맨 처음 값이 경우 값 넣고 끝~!~~!!
            if i == 0 : 
                dp[0] = nums[0]
                continue
            # 현재까지의 누적값 VS 지금 값 비교 후 더 큰 값을 저장합시데이~~~!!
            dp[i] = max(nums[i], dp[i-1]+nums[i])
        
        return max(dp)

 

예제 풀이

def maxSubArray(self, nums: List[int]) -> int:
        for i in range(1, len(nums)):
            nums[i] += nums[i-1] if nums[i-1] > 0 else 0 
        return max(nums)

0보다 작은 값은 어차피 - 만 되니께 전의 누적 값이 0보다 큰 값일 경우에 더 해주고 아니면 더 해주지 말자~!!

 

반응형