LeetCode:贪心算法

目录

一、分发饼干

二、摆动序列

三、最大子数组和


一、分发饼干

455. 分发饼干 - 力扣(LeetCode)

java 复制代码
class Solution {
    public int findContentChildren(int[] g, int[] s) {
        Arrays.sort(s);
        Arrays.sort(g);
        int index=s.length-1;//饼干下标
        int result=0;//可满足的孩子数量
        for(int i=g.length-1;i>=0;i--){
            if(index>=0&&s[index]>=g[i]){//饼干的尺寸大于等于孩子的胃口
                result++;//满足的孩子+1
                index--;//下标左移
            }
        }
        return result;
    }
}

二、摆动序列

376. 摆动序列 - 力扣(LeetCode)

java 复制代码
class Solution {
    public int wiggleMaxLength(int[] nums) {
        if(nums.length<=1)return nums.length;
        int cur=0;
        int pre=0;
        int result=1;
        for(int i=0;i<nums.length-1;i++){
            cur=nums[i+1]-nums[i];
            if((cur>0&&pre<=0)||(cur<0&&pre>=0)){
                result++;
                pre=cur;
            }
        }
        return result;
    }
}

三、最大子数组和

53. 最大子数组和 - 力扣(LeetCode)

java 复制代码
class Solution {
    public int maxSubArray(int[] nums) {
        int result=Integer.MIN_VALUE;
        int count=0;
        for(int i=0;i<nums.length;i++){
            count+=nums[i];
            result=Math.max(count,result);
            if(count<=0)count=0;//相当于重置最大子序列起始位置,因为遇到负数一定是拉低总和
        }
        return result;
    }
}
相关推荐
lueluelue473 小时前
LeetCode:链表
算法·leetcode·链表
橘子汽水1686 小时前
Leetcode 23,543合并K个升序链表,二叉树的直径
算法·leetcode·链表
huameinan狮子6 小时前
Adaboost算法原理与计算实例
算法
别怪我很水6 小时前
API中提供了VelocityTracker类用于计算触摸事件MotionEvent的速度,而其内部默认使用的方法就是最小二乘法,本 ...
算法·gitee·最小二乘法
Re.不晚9 小时前
挑战做100道力扣算法- DAY1
算法·leetcode·职场和发展
蓝悦无人机9 小时前
《Planning algorithms》读书笔记——第1章 引言
算法·读书笔记·规划算法·lavalle
Sagittarius_A*9 小时前
分组密码基础(二):Feistel 结构与 DES 的设计思想
算法·信息安全·密码学·des·数论
青山木10 小时前
Hot 100 --- 搜索插入位置
java·数据结构·算法·leetcode
alexwang21110 小时前
HDU 4348 详细题解
c++·算法·题解·hdu·主席树·可持久化数据结构·可持久化线段树