-
[Leetcode] 53. Maximum Subarray 문제풀이Algorithm/문제풀이 2021. 10. 5. 13:16
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
문제 내용
연속된 부분 집합의 합이 최대인 값을 구하는 문제
Example 1:
Input: nums = [-2,1,-3,4,-1,2,1,-5,4]
Output: 6
Explanation: [4,-1,2,1] has the largest sum = 6.
문제 풀이
연속된 값만 구하면 된다.
연속해서 합했을 때 현재 값보다 크면 계속 더하고
현재 값보다 작으면 현재값으로 업데이트하는 방식으로 쭉 나가면 된다.
class Solution { public: int maxSubArray(vector<int>& nums) { int sum = nums[0]; int ans = sum; for (int i = 1; i < nums.size(); ++i) { sum = max(sum + nums[i], nums[i]); ans = max(ans, sum); } return ans; } };
'Algorithm > 문제풀이' 카테고리의 다른 글
[Leetcode] 442. Find All Duplicates in an Array 문제풀이 (0) 2021.10.06 [Leetcode] 217. Contains Duplicate 문제풀이 (0) 2021.10.05 [Leetcode] 463. Island Perimeter 문제풀이 (0) 2021.10.04 [Leetcode] 322. Coin Change 문제풀이 (0) 2021.10.02 [Leetcode] 343. Integer Break 문제풀이 (0) 2021.10.02