代码随想录刷题随记27-贪心1

代码随想录刷题随记27-贪心

455.分发饼干

leetcode链接

java 复制代码
class Solution {
    public int findContentChildren(int[] g, int[] s) {
        //boolean used[]=new boolean [s.length];
        Arrays.sort(s);
        Arrays.sort(g);
        int  index=0;
        int ret=0;
        for(int i=0;i<g.length;i++){
            while(index<s.length&&g[i]>s[index]){
                index++;
            }

            if(index>=s.length)
               return ret;
            ret++;
            index++;
        }
        return ret;
    }
}

376. 摆动序列

leetcode链接

贪心:

去除所有坡上的点

java 复制代码
class Solution {
    public int wiggleMaxLength(int[] nums) {
     int length=0;
     int curdif=0;
     int predif=0;
     int next;
     if(nums.length<1)
       return nums.length;

     for(int i=1;i<nums.length;i++){
         curdif=nums[i]-nums[i-1];
         if(curdif!=0&&(curdif*predif<0||predif==0)){
            length++;
            predif=curdif;
         }

     }
     
     return length+1;

    }
}

53. 最大子序和

leetcode链接

贪心:

局部最优:当前"连续和"为负数的时候立刻放弃,从下一个元素重新计算"连续和",因为负数加上下一个元素 "连续和"只会越来越小。

全局最优:选取最大"连续和"

java 复制代码
class 
Solution {
    public int maxSubArray(int[] nums) {
      int count=Integer.MIN_VALUE;
      int cur=0;
      int cursum=0;
      for(int i=0;i<nums.length;i++){      
          cursum+=nums[i];
          count=Math.max(cursum, count);
          if(cursum<0){
            cursum=0;
          }
          
      }
      return count;

    }
}
相关推荐
Ivanqhz9 分钟前
刚体的自由度
人工智能·算法
花颜yyds23 分钟前
Java 开发基础速查手册
java
KaMeidebaby27 分钟前
卡梅德生物技术快报|抗体合成:多肽抗体合成工程化方案:Nsp2 保守肽多抗制备与多维度验证
前端·网络·数据库·人工智能·算法
没钥匙的锁11 小时前
05-Java面向对象构造器与封装
java·开发语言
Yang_jie_031 小时前
笔记:数据结构(栈是否使用底指针以及头指针的初始化值)
数据结构·笔记·算法
aaPIXa6221 小时前
C++采样引导优化SPGO——比PGO更智能的编译器决策新方案
java·c++·人工智能
蓝银草同学1 小时前
Stream 实战:博客列表排序、过滤与分页(AI 辅助学习 Java 8)
java·前端·后端
2301_800895101 小时前
信息安全数学基础复习
算法
爱折腾的小黑牛2 小时前
简记往来批量录入功能的实现:从文本到结构化数据
前端·算法
Starmoon_dhw2 小时前
题解:P17078 夏日甜点
c++·学习·算法·图论