算法训练营第31天|LeetCode 455.分发饼干 376.摆动序列 53.最大子序列和

发布于:2024-04-07 ⋅ 阅读:(83) ⋅ 点赞:(0)

LeetCode 455.分发饼干

题目链接:

LeetCode 455.分发饼干

解题思路:

从孩子小到大,找到最小能满足孩子的饼干,之后看最多能满足几个孩子。

代码:

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        int count = 0;
        map<int,int>map_s;
        for(int i = 0;i<s.size();i++){
            map_s[s[i]]++;
        }
        sort(g.begin(),g.end());
        for(int i=0;i<g.size();i++){
            for(auto it = map_s.begin();it!=map_s.end();it++){
                if(it->first>=g[i]&&it->second>0){
                    it->second--;
                    count++;
                    break;
                }

            }
        }
        return count;
    }
};

LeetCode 376.摆动序列

题目链接:

LeetCode 376.摆动序列

解题思路:

先将一个节点和两个节点的特殊情况列举出来,之后分三种情况1.有摆动2.有摆动但中间是平的3.持续增,但中间为平的三种。

代码:

class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        int size = nums.size();
        if(size==1) return 1;
        else if(size==2){
            if(nums[0]!=nums[1]) return 2;
            else return 1;
        }
        int prediff = 0,curdiff = 0;
        int count = 1;
        for(int i=1;i<size;i++){
            curdiff = nums[i]-nums[i-1];
            if((curdiff>0&&prediff<=0)||(curdiff<0&&prediff>=0)){
                count++;
                prediff = curdiff;
            }
        }
        return count;

    }
};

LeetCode 53.最大子序列和

题目链接:

LeetCode 53.最大子序列和

解题思路:

用result记录当前最大结果值,如果前面的结果值小于零,则起不到递增的作用,则不要前面的,将前面的结果赋值为0.

代码:

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int count = 0;
        int result = INT_MIN;
        for(int i=0;i<nums.size();i++){
            count+=nums[i];
            if(count>result) result = count;
            if(count<0) count = 0;
        }
        return result;
    }
};


网站公告

今日签到

点亮在社区的每一天
去签到

热门文章