代码随想录算法训练营第三十一天 |分发饼干 、摆动序列 ,最大子序和

455.分发饼干

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
            sort(g.begin(),g.end());
            sort(s.begin(),s.end());
            int index = s.size() -1;
            int result = 0;
            for (int i = g.size()-1; i >= 0; i--) {
                if (index>= 0 && s[index] >= g[i]) {
                    index--;
                    result++;
                }
            }
            return result;
    }   
};

376. 摆动序列

class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        if (nums.size() <= 1) return nums.size();
        int curDiff = 0; 
        int preDiff = 0; 
        int result = 1; 
        for (int i = 0; i < nums.size() - 1; i++) {
            curDiff = nums[i + 1] - nums[i];
            if ((preDiff <= 0 && curDiff > 0) || (preDiff >= 0 && curDiff < 0)) {
                result++;
                preDiff = curDiff; 
            }
        }
        return result;
    }
};

53. 最大子序和

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        if (nums.size() == 1) return nums[0];
         int maxAns = nums[0];
         int pre = 0;
         for (const auto &x : nums) {
             pre = max(pre+x,x);
             maxAns = max(pre,maxAns);
         }
         return maxAns;
    }
};
posted @ 2023-02-14 13:52  MasEne  阅读(32)  评论(0)    收藏  举报