LeetCode 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;i<g.size();i++){
for(int j=0;j<s.size();j++){
if(s[j]>=g[i]){
count++;
s.erase(s.begin()+j);
g.erase(g.begin()+i);
i--;
break;
}
}
}
return count;
}
};
我这个是从下开始看,可以看卡哥代码,写的更好。
LeetCode 376. 摆动序列
class Solution {
public:
int wiggleMaxLength(vector<int>& nums) {
if(nums.size()<=1)return nums.size();
int prediff=0,currdiff=0,result=1;
for(int i=1;i<nums.size();i++){
currdiff=nums[i]-nums[i-1];
if((prediff<=0 && currdiff>0)||(prediff>=0 && currdiff<0)){
result++;
prediff=currdiff;
}
}
return result;
}
};
想不出来,直接看吧,这个题目真是复杂。
判断条件(prediff<=0 && currdiff>0)||(prediff>=0 && currdiff<0)
使result++
LeetCode 53. 最大子数组和
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int result=INT32_MIN,count=0;
for(int i=0;i<nums.size();i++){
for(int j=i;j<nums.size();j++){
count+=nums[j];
result=result>count?result:count;
}
count=0;
}
return result;
}
};
上面暴力超时
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int result=INT_MIN,count=0;
for(int i=0;i<nums.size();i++){
count+=nums[i];
result=result>count?result:count;
if(count<0)count=0;
}
return result;
}
};
下面优化可以通过。