Day5
休息,看看hot100
类DP或者前缀和问题
53. Maximum Subarray
class Solution {
public:
int maxSubArray(vector<int>& nums) {
if(nums.size() == 1)
return nums[0];
int currSum = 0;
int ans = nums[0];
for(int i=0; i<nums.size(); ++i)
{
currSum += nums[i];
ans = max(ans, currSum);
if(currSum <= 0)
currSum = 0;
}
return ans;
}
};
56. Merge Intervals
class Solution {
public:
static bool cmp(vector<int>& v1, vector<int> &v2)
{
return v1[0] < v2[0];
}
vector<vector<int>> merged;
vector<vector<int>> merge(vector<vector<int>>& intervals) {
if(intervals.size() == 1)
return intervals;
sort(intervals.begin(), intervals.end(), cmp);
for(int i=1; i<intervals.size(); ++i)
{
if(intervals[i][0] > intervals[i-1][1])
{
merged.push_back(intervals[i-1]);
}
else if(intervals[i][0] <= intervals[i-1][1])
{
intervals[i][0] = intervals[i-1][0];
if(intervals[i][1] < intervals[i-1][1])
{
intervals[i][1] = intervals[i-1][1];
}
}
}
merged.push_back(intervals[intervals.size()-1]);
return merged;
}
};
189. Rotate Array
class Solution {
public:
void rotate(vector<int>& nums, int k) {
k = k % nums.size();
reverse(nums.begin(), nums.end());
reverse(nums.begin(), nums.begin()+k);
reverse(nums.begin()+k, nums.end());
}
};
238. Product of Array Except Self
class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {
int length = nums.size();
vector<int> answer(length);
answer[0] = 1;
for (int i = 1; i < length; i++) {
answer[i] = nums[i - 1] * answer[i - 1];
}
int R = 1;
for (int i = length - 1; i >= 0; i--) {
answer[i] = answer[i] * R;
R *= nums[i];
}
return answer;
}
};