代码随想录训练营第二十七天| 贪心理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

贪心没有套路,说白了就是常识性推导加上举反例

今天的内容比较简单 简单了解贪心是通过局部最优解反推全局最优解(有经验成分)

455.分发饼干

题目链接: 455. 分发饼干 - 力扣(LeetCode)

讲解链接: 代码随想录

Java代码:

java 复制代码
class Solution{
    //思路1 优先考虑饼干 小饼干先喂饱小胃口
    public int findContentChildren(int[] g, int[] s){
        Arrays.sort(s);
        Arrays.sort(g);
        int start = 0, count = 0;
        for(int i = 0; i < s.length && start < g.length; i++){
            if(s[i] >= g[start]){
                start++;
                count++;
            }
        }
        return count;
    }
}

376. 摆动序列

题目链接: 376. 摆动序列 - 力扣(LeetCode)

讲解链接: 代码随想录

感觉这道题我只明白了摆动 但是对于三个特殊情况我想不到 还是得慢慢来思考

  1. 情况一:上下坡中有平坡
  2. 情况二:数组首尾两端
  3. 情况三:单调坡中有平坡

Java代码:

java 复制代码
class Solution{
    public int wiggleMaxLength(int[] nums){
        if(nums.length <= 1) return nums.length;
        //当前差值
        int curdiff = 0;
        //上一个差值
        int prediff = 0;
        int count = 1;
        for(int i = 1; i < nums.length; i++){
            //得到当前差值
            curdiff = nums[i] - nums[i - 1];
            //如果当前差值和上一个差值为一正一负
            //等于0 的情况 表示初始时的prediff
            if((curdiff > 0 && prediff <= 0) || (curdiff < 0 && prediff >= 0)){
                count++;
                prediff = curdiff;
            }
        }
        return count;
    }
}

53. 最大子序和

题目链接:53. 最大子数组和 - 力扣(LeetCode)

讲解链接:代码随想录

这题可以暴力直接过 有可能TLE 还是看看贪心 这道题也能用前缀和 或者 dp做

java 复制代码
class Solution{
    public int maxSubArray(int[] nums){
        if(nums.length == 1) return nums[0];
        int sum = Integer.MIN_VALUE;
        int count = 0;
        for(int i = 0; i < nums.length; i++){
            count += nums[i];
            sum = Math.max(sum, count);//取出区间累计最大值
            if(count <= 0){
                count = 0;//相当于重置最大子序起始位置
                //因为遇到负数一定拉低总和
            }
        }
        return sum;
    }
}

努力学习 找工作

相关推荐
漂流瓶jz3 分钟前
UVA-1152 和为0的4个值 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·二分查找·题解·aoapc·算法竞赛入门经典·uva
leoufung11 分钟前
LeetCode 76:Minimum Window Substring 题解与滑动窗口思维详解
算法·leetcode·职场和发展
小O的算法实验室25 分钟前
2026年IEEE TETCI,山区环境下基于双种群进化的协同无人机巡逻任务协同优化,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
生成论实验室1 小时前
《事件关系阴阳博弈动力学:识势应势之道》第二篇:阴阳博弈——认知的动力学基础
数据结构·人工智能·科技·神经网络·算法
风筝在晴天搁浅1 小时前
字节高频题 小于n的最大数
算法
LabVIEW开发1 小时前
LabVIEW水力机组空蚀在线监测
算法·labview·labview知识·labview功能·labview程序
AI科技星1 小时前
科幻艺术书本封面:《全域数学》第一部·数术本源 第三卷 代数原本(P95-141)完整五级目录【乖乖数学】
算法·机器学习·数学建模·数据挖掘·量子计算
风筝在晴天搁浅1 小时前
LeetCode 92.反转链表Ⅱ
算法·leetcode·链表
weisian1512 小时前
基础篇--概念原理-2-参数是什么?——从原理到实战,一篇讲透
面试·职场和发展·模型参数·7b和70b·参数=规则,不是原始数据
王老师青少年编程2 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【贪心与二分判定】:数列分段 Section II
c++·算法·贪心·csp·信奥赛·二分判定·数列分段 section ii