455.分发饼干
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
sort(g.begin(),g.end());
sort(s.begin(),s.end());
int left=0,res=0;
for (int right=0;right<s.size();right++){
if (left>=g.size())break;
if (s[right]<g[left])continue;
else{
res++;
left++;
}
}
return res;
}
};
376. 摆动序列
class Solution {
public:
int wiggleMaxLength(vector<int>& nums) {
if (nums.size()<=1)return nums.size();
int predif=0; //表示先前的坡度
int curdif=0; //表示当前的坡度
int res=1;
for (int i=0;i<nums.size()-1;i++){//这里不能取到最后的元素
curdif=nums[i+1]-nums[i];
if ((curdif>0 && predif<=0) || (curdif<0 && predif>=0)){
res++;
predif=curdif;
}
}
return res;
}
};
总结
这道题真的细节好多。
53. 最大子序和
class Solution {
public:
int maxSubArray(vector<int>& nums) {
if (nums.size()==1)return nums[0];
int res=INT_MIN; //表示当前最大的结果
int cur=0; //表示当前的和
for (int i=0;i<nums.size();i++){
cur+=nums[i];
res=max(cur,res);
if (cur<0)cur=0;
}
return res;
}
};
总结
这道题也想不出来呀。