455. 分发饼干
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
//胃口排序
sort(g.begin(), g.end());
//蛋糕排序
sort(s.begin(), s.end());
//能满足孩纸的数量
int count = 0;
for (int i = 0, j = 0; i < g.size()&&j < s.size(); ) {
if (s[j] >= g[i]) {
j++;
i++;
count++;
}else {
j++;
}
}
return count;
}
};
376. 摆动序列
class Solution {
public:
int wiggleMaxLength(vector<int>& nums) {
int cur;//当前2个数需要的差值为正数/负数, 正数为1,负数为0
int count = 1; //摆动序列的最大长度,初始为1
int tmp; //记录当前数与上一个数差正负
if (nums.size() <= 1) return nums.size();// <=1直接输出
for (int i = 1; i < nums.size(); i++) {
tmp = nums[i]-nums[i-1];
//差值>0才符合摆动条件
if (abs(tmp) > 0) {
if (count == 1) {
cur = tmp > 0 ? 0:1;
count++;
//cur > 0 && 当前差 > 0
}else if (cur == 1 && tmp > 0) {
cur = 0;
count++;
//cur < 0 && 当前差 < 0
}else if (cur == 0 && tmp < 0){
cur = 1;
count++;
}
}
}
return count;
}
};
53. 最大子数组和
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int n = nums.size();
int maxRes = nums[0];
for(int i = 1; i < n; i++){
if(nums[i-1] > 0) {
nums[i] = nums[i-1]+nums[i];
}
maxRes = max(maxRes,nums[i]);
}
return maxRes;
}
};