贪心算法
少๑渊
可接课设,详情私聊
展开
-
力扣第455题:分发饼干
一、题目内容二、题目分析 这道题目求的是最大的满足人数,而且饼干不能掰开。 所以我们可以将饼干和人的食量都从小到大排序。 然后两重for循环,都从0开始,如果第一块最小的饼干正好可以满足食量最小的那个人,那么就让满足人数加一,并且比较接下来一个人和接下来一块饼干,如果当前这块饼干不能满足当前这个人,那么它肯定也满足不了它之后的人,所以就直接跳过这块饼干,比较下一块更大的饼干和这个人的食量,以此类推,直到饼干没了或者人遍历完了,最...原创 2021-10-22 15:13:13 · 861 阅读 · 0 评论 -
力扣第45/55题:跳跃游戏(贪心算法)
一、题目内容二、题目分析(以上为官方解析) 三、代码class Solution { public boolean canJump(int[] nums) { int k=0; for(int i=0;i<nums.length;i++) { if(i>k) return false; k=Math.max(k,nums[i...原创 2021-10-21 13:50:42 · 1734 阅读 · 0 评论 -
力扣第1402题:做菜顺序(贪心算法)
一、题目内容 二、题目分析 这个题目大概有这样两种极端情况:一种是全为非负数,这时候做所有的菜都可以让我的喜爱时间总和变大。比如有个数组[4,2,6,3,1],都是非负数,所以每个菜都要坐,那怎么获得最大喜爱时间呢?因为最大喜爱时间等于前缀时间和乘以这道菜的满意程度,而时间和都是一样的,所以我们要把满意程度最大的菜放在最后做才可以获得最大喜爱时间,即按照[6,4,3,2,1]来做最好。当全是负数的时候,自然是一道也不做最好啦。 所以在写这道题的时候,我们首...原创 2021-10-20 20:25:14 · 380 阅读 · 0 评论 -
力扣第135题:分发糖果(贪心算法)
一、题目内容二、题目分析 这个题目可以这样认为,因为每个学生都要收到一颗糖果,所以不如先定义一个保存糖果数目的数组cnt,然后将它的初始值赋值为1。 按照贪心算法思想,先从左往右遍历,每次和左边的数比较大小,取左边那个数加一和自身的最大值赋给自己,即cnt[i]=Math.max(cnt[i-1]+1,cnt[i]).然后比较完左边的再从最右边开始,按照相同的办法遍历一遍,就可以得到最终结果了。三、完整代码class Solution { pub...原创 2021-10-19 14:57:40 · 317 阅读 · 0 评论