Day 31 | 贪心算法 理论基础 、455.分发饼干 、 376. 摆动序列 、 53. 最大子序和

理论基础

文章讲解

455.分发饼干

题目
文章讲解
视频讲解

思路:从小饼干开始喂小胃口

class Solution {
   
    public int findContentChildren(int[] g, int[] s) {
   
        Arrays.sort(g);
        Arrays.sort(s);
        int start = 0;
        int count = 0;
        for (int i = 0; i < s.length && start < g.length; i++) {
   
            if (s[i] >= g[start]) {
   
                start++;
                count++;
            }
        }
        return count;
    }
}

376. 摆动序列

题目
文章讲解
视频讲解

思路:初始时preDiff可能为0

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. 最大子序和

题目
文章讲解
视频讲解

思路:在处理负数的情况下,对于任何负数,如果将其加入当前的和中,都会导致和变小。因此,如果当前的和已经为负数,那么加上任何负数都不会使和变大,因此应该将当前的 count 重置为0

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;
    }
}

最近更新

  1. TCP协议是安全的吗?

    2024-01-28 09:12:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-28 09:12:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-28 09:12:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-28 09:12:02       20 阅读

热门阅读

  1. 【每日一题】YACS 243:5G通讯

    2024-01-28 09:12:02       31 阅读
  2. npm install 一直卡在 sill idealTree 解决方案

    2024-01-28 09:12:02       36 阅读
  3. k8s Ingress部署应用

    2024-01-28 09:12:02       33 阅读
  4. gbase审计日志

    2024-01-28 09:12:02       34 阅读
  5. python连接activemq

    2024-01-28 09:12:02       34 阅读
  6. 在Vue的模块开发中使用GPT的体验及总结

    2024-01-28 09:12:02       32 阅读
  7. STM32 简易智能家居嵌入式系统设计蓝图

    2024-01-28 09:12:02       27 阅读
  8. 2-1.分支结构之switch语句

    2024-01-28 09:12:02       31 阅读
  9. day34_js

    day34_js

    2024-01-28 09:12:02      28 阅读