代码随想录刷题随记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;

    }
}
相关推荐
点云SLAM39 分钟前
二叉树算法详解和C++代码示例
数据结构·c++·算法·红黑树·二叉树算法
拼搏@44 分钟前
第十六天,7月10日,八股
java·mybatis
Sylvia-girl4 小时前
Java——抽象类
java·开发语言
Touper.7 小时前
Redis 基础详细介绍(Redis简单介绍,命令行客户端,Redis 命令,Java客户端)
java·数据库·redis
m0_535064607 小时前
C++模版编程:类模版与继承
java·jvm·c++
今天背单词了吗9808 小时前
算法学习笔记:19.牛顿迭代法——从原理到实战,涵盖 LeetCode 与考研 408 例题
笔记·学习·算法·牛顿迭代法
没书读了8 小时前
考研复习-数据结构-第六章-图
数据结构
虾条_花吹雪8 小时前
Using Spring for Apache Pulsar:Message Production
java·ai·中间件
tomorrow.hello8 小时前
Java并发测试工具
java·开发语言·测试工具
Moso_Rx8 小时前
javaEE——synchronized关键字
java·java-ee