代码随想录算法训练营Day31 | 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和
LeetCode 455.分发饼干
题目链接:LeetCode 455.分发饼干
思路:
 分别排序,最大的饼干给胃口最大的孩子,充分利用。
 注意索引需要大于0
class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(),g.end());
        sort(s.begin(),s.end());
        int result = 0;
        int index = s.size()-1;
        for(int i=g.size()-1; i>=0; i--){
            if(index>=0 && s[index] >= g[i]){
                result ++;
                index--;
            }
        }
        return result;
    }
};
//小饼干先满足小胃口也可以
class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(),g.end());
        sort(s.begin(),s.end());
        int index = 0;
        for(int i=0; i<s.size(); i++){
            if(index<=g.size()-1 && g[index] <= s[i]){
                index ++;
            }
        }
        return index;
    }
};
注意 :
 1.
 2.
 3.
 4.
LeetCode 376. 摆动序列
题目链接:LeetCode 376. 摆动序列
思路:
class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        if(nums.size()<=1) return nums.size();
        int cur_diff = 0;
        int pre_diff = 0;
        int result = 1;
        for(int i=0; i<nums.size()-1; i++){
            cur_diff = nums[i+1]-nums[i];
            if((cur_diff>0&&pre_diff<=0)|| (cur_diff<0&&pre_diff>=0)){
                result++;
                pre_diff = cur_diff;
            }
        }
        return result;
    }
};
注意 :
 1.
 2.
 3.
 4.
LeetCode 53. 最大子序和
题目链接:LeetCode 53. 最大子序和
思路:
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int count = 0;
        int res = INT_MIN;
        for(int i=0; i<nums.size(); i++){
            count += nums[i];
            if(count>res){
                res = count;
            }
            if(count<0) count = 0;
        }
        return res;
    }
};
注意 :
 1.
 2.
 3.
 4.



















