2021-11-25 Daily-Challenge
Today I have done leetcode's November LeetCoding Challenge with cpp.
November LeetCoding Challenge 25
Description
Maximum Subarray
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 <= 10^5-104 <= nums[i] <= 10^4
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.
Solution
auto speedup = [](){
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
return 0;
}();
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int answer = INT_MIN;
int sum = 0;
for(auto i : nums) {
sum += i;
if(answer < sum) {
answer = sum;
}
if(sum < 0) {
sum = 0;
}
}
return answer;
}
};
// Accepted
// 209/209 cases passed (109 ms)
// Your runtime beats 43.26 % of cpp submissions
// Your memory usage beats 53.84 % of cpp submissions (67.7 MB)