Day31 贪心算法

Day31 贪心算法

455.分发饼干

我的思路:

小孩数组g指针一直前移,只有饼干数组s满足条件时,才前移,并且更新num

解答:

java 复制代码
class Solution {
    public int findContentChildren(int[] g, int[] s) {
        Arrays.sort(g);
        Arrays.sort(s);
        int num = 0;
        for(int i = g.length - 1, j = s.length - 1; i >= 0 && j >= 0; i--) {
            if(g[i] <= s[j]) {
                num += 1;
                j --;
            }
        }
        return num;
    }
}

376. 摆动序列

我的思路:

将数组分为length<2和>=2考虑;

=2时,先判断前两个是否为摆动,是则初始化count = 2,否则初始化count = 1;然后从i = 2,(第三个数字)开始统计count

<2的话,直接返回数组长度length

解答:

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

53. 最大子序和

我的思路:

用一个同样大小的数组存储遍历到目前的最大连续数组之和,如果遍历到的元素大于之前的数组之和,则进行更新

解答:

java 复制代码
class Solution {
    public int maxSubArray(int[] nums) {
        if(nums == null || nums.length == 0) {
            return 0;
        }
        int[] res = new int[nums.length];
        res[0] = nums[0];
        int maxnum = res[0];
        for(int i = 1; i < nums.length; i++) {
            res[i] = Math.max(res[i-1] + nums[i], nums[i]);
            maxnum = Math.max(res[i], maxnum);
        }
        return maxnum;
    }
}
相关推荐
Mr_sun.42 分钟前
Day09——入退管理-入住-2
android·java·开发语言
MAGICIAN...1 小时前
【java-软件设计原则】
java·开发语言
JH30731 小时前
为什么switch不支持long
java
YuTaoShao1 小时前
【LeetCode 每日一题】1653. 使字符串平衡的最少删除次数——(解法三)DP 空间优化
算法·leetcode·职场和发展
盐真卿1 小时前
python第八部分:高级特性(二)
java·开发语言
上海合宙LuatOS1 小时前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
汤姆yu1 小时前
基于springboot的尿毒症健康管理系统
java·spring boot·后端
TT哇1 小时前
【实习】银行经理端线下领取扫码功能实现方案
java
野犬寒鸦2 小时前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
黎雁·泠崖2 小时前
【魔法森林冒险】2/14 抽象层设计:Figure/Person类(所有角色的基石)
java·开发语言