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;
    }
}
相关推荐
爱读源码的大都督23 分钟前
为什么有了HTTP,还需要gPRC?
java·后端·架构
Lucky_Turtle42 分钟前
【Java Xml】Apache Commons Digester3解析
xml·java·apache
聪明的笨猪猪1 小时前
Java Redis “缓存设计”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
FIavor.1 小时前
我发送给Apifox是http://localhost:9002/goods/getByUserName?name=张三 为什么会是500哪里错了?
java·服务器·网络协议·http
ID_180079054731 小时前
京东获取整站实时商品详情数据|商品标题|数据分析提取教程
java·开发语言
微露清风2 小时前
系统性学习C++-第五讲-内存管理
java·c++·学习
计算机毕业设计木哥2 小时前
计算机毕业设计选题推荐:基于SpringBoot和Vue的快递物流仓库管理系统【源码+文档+调试】
java·vue.js·spring boot·后端·课程设计
235162 小时前
【LeetCode】146. LRU 缓存
java·后端·算法·leetcode·链表·缓存·职场和发展
聪明的笨猪猪2 小时前
Java Redis “运维”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
FIavor.2 小时前
怎么办这是Apifox里执行http://localhost:9002/goods/getByUserName?name=“张三“为什么我改了还是500?
java·网络·网络协议·http