-
[알고리즘] Maximum Subarray알고리즘/배열 2021. 4. 21. 11:30
Problem
Key Point
- 현재 값과 이전까지 더한 합 중 큰 값을 sum으로 설정
- sum = Math.max(nums[i], sum + nums[i]);
- 현재 max값과 sum 중에서 큰 값을 max으로 설정
- max = Math.max(max, sum);
Code
public class MaxSubArray { public int solution(int[] nums) { int sum = nums[0]; int max = nums[0]; for (int i = 1; i < nums.length; i++) { sum = Math.max(nums[i], sum + nums[i]); max = Math.max(max, sum); } return max; } public static void main(String[] args) { int[] nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4}; MaxSubArray problem = new MaxSubArray(); System.out.println(problem.solution(nums)); } }
'알고리즘 > 배열' 카테고리의 다른 글
[알고리즘] Find All Anagrams in a String (0) 2021.04.22 [알고리즘] Find Anagram Mappings (0) 2021.04.22 [알고리즘] Longest Substring (0) 2021.04.21 [알고리즘] Unique Email Addresses (0) 2021.04.21 [알고리즘] Move Zeroes (0) 2021.04.20 - 현재 값과 이전까지 더한 합 중 큰 값을 sum으로 설정