53. Maximum Subarray
2022. 7. 31. 21:52ㆍSTUDY/LeetCode
반응형
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
A subarray is a contiguous part of an array.
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.
Example 2:
Input: nums = [1]
Output: 1
Example 3:
Input: nums = [5,4,-1,7,8]
Output: 23
Constraints:
- 1 <= nums.length <= 105
- -104 <= nums[i] <= 104
Follow up: If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.
Normal Solution:
* ㅋㅋ INT_MIN 처음봄......... O-<-<......
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int maxSubArray(int *nums, int numsSize) {
int max = INT_MIN;
int sum = 0;
for(int i = 0 ; i < numsSize; i++) {
if( sum >= 0)
sum += nums[i];
else
sum = nums[i];
if(sum > max)
max = sum;
}
return max;
}
int main() {
int a[40] = {-2,1,-3,4, -1, 2, 1, -5, 4};
printf("%d", maxSubArray(a, 9));
return 0;
}
Divide and Conquer :
728x90
반응형
'STUDY > LeetCode' 카테고리의 다른 글
2000. Reverse Prefix of Word (C++) (1) | 2022.08.11 |
---|---|
1678. Goal Parser Interpretation (C/C++) (2) | 2022.08.04 |
LeetCode - 509.Fibonacci Num & 1137. N-th Tribonacci Number (1) | 2022.07.25 |
LeetCode - 240. Search a 2D Matrix II (0) | 2022.07.24 |
LeetCode - 733. Flood Fill (0) | 2022.07.17 |