代码随想录算法训练营第三十一天|LeetCode455 分发饼干、LeetCode376 摆动序列

题1:

指路:455. 分发饼干 - 力扣(LeetCode)
思路与代码:

本题要求返回最多能满足的数量。根据对应原则,应当是大饼干满足胃口大的孩子,小饼干满足胃口小的孩子以物尽其用。我们可以从饼干入手,以大饼干为基准,选出它能满足的最大胃口的小孩作为局部最优解。以此类推,每次选出最大尺寸的饼干以满足胃口较大的小孩从而得出满足数量。代码如下:

cpp 复制代码
class Solution {
 
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
    sort(g.begin(), g.end());
    sort(s.begin(), s.end());
    int res = 0;  // 喂饱了多少小孩
    int index = s.size() - 1;
    for (int i = g.size() - 1; i >= 0; i--) {  
        // for循环控制小孩子的胃口
        if (index >= 0 && s[index] >= g[i]) {
           // if控制饼干的数量 
            res++;
            index--;
        }
    }
    return res;
    }
};

题2:

指路:376. 摆动序列 - 力扣(LeetCode)
思路与代码:

找峰值波动:如果当前节点和上一节点的差值(prediff)下一节点和当前节点的差值(curdiff) 异号则符合条件。然而本题还有特殊情况:1.上下坡中有平坡1, 2, 2, 2, 2, 1这样的数组实际摆动序列为3,我们可以删除最左边的三个二来满足条件;2.峰值出现在数组两端 ,在计算波动时需要三个数字,但数组两端的数字计算起来只有两个数字,对此,解决方法为:假设数组最前面还有一个数字,例如2, 5,我们可以假设为2, 2, 5,prediff = 0而curdiff = 3不为0为波谷,有坡度;3单调坡度上有平坡1, 2, 2, 3, 4最终结果为2,因为3,4阶段无波动,对此,我们在有波动时更新prediff可解决。代码如下:

cpp 复制代码
class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        if (nums.size() <= 1) return nums.size();
        int curdiff = 0;
        int prediff = 0;
        int reslut = 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) ) {
                reslut++;
                prediff = curdiff;
            }
        }
        return reslut;
    }
};
相关推荐
NiceCloud喜云19 分钟前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
小羊在睡觉32 分钟前
力扣84. 柱状图中最大的矩形
后端·算法·leetcode·golang·go
cjhbachelor42 分钟前
c++继承
c++
3DVisionary1 小时前
蓝光三维扫描:医疗制造的精度焦虑怎么解
人工智能·算法·制造·蓝光三维扫描·医疗制造·三维检测·义齿检测
好评笔记1 小时前
机器学习面试八股——常用损失函数
人工智能·深度学习·算法·机器学习·校招
weixin_468466851 小时前
全局与局部注意力机制新手实战指南
人工智能·python·深度学习·算法·自然语言处理·transformer·注意力机制
肩上风骋1 小时前
C++14特性
开发语言·c++·c++14特性
sheeta19981 小时前
LeetCode 每日一题笔记 日期:2026.05.29 题目:3300. 最小元素
笔记·leetcode
_日拱一卒1 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
珂朵莉MM2 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第3赛季优化题--束搜索
人工智能·算法