美文网首页
LeetCode 135. 分发糖果

LeetCode 135. 分发糖果

作者: 风卷晨沙 | 来源:发表于2019-07-24 13:39 被阅读0次

1、题目

分发糖果 - 力扣(LeetCode) https://leetcode-cn.com/problems/candy/submissions/

2、题解

本来我看到这个题目是困难,心想,凉凉。尼玛,又要不知道挖多久了。结果看了题目之后,我一度怀疑这个题目的难度定错了,这题很简单。
题意是说老师分糖,最少一块,相邻比较,分高者多
解决方法就是首先拿一个数组来记录每个位置的发糖数量,初始为每人一块。
然后进行两次遍历,先进行从前向后的遍历,如果后面的分数比前面大,就在前面得到的糖果的基础上加1;再进行从后向前的遍历,如果前面的分数大于后面且前面分到的糖果少于后面,就在后面得到的糖果的基础上加1;
最后,对糖果数组进行累加即可。

3、代码

//两次遍历大法
    class Solution {
        public int candy(int[] ratings) {
            int length = ratings.length;
            int[] saveValueAry = new int[length];
            //填充值
            for (int i = 0; i < length; i++) {
                saveValueAry[i]=1;
            }
            //从前到后
            for (int i = 1; i < length; i++) {
                if(ratings[i]>ratings[i-1]){
                    saveValueAry[i]=1+saveValueAry[i-1];
                }

            }
            //从后到前
            for (int i = length-2; i>=0; i--) {
                if(ratings[i]>ratings[i+1]&&saveValueAry[i]<=saveValueAry[i+1]){
                    saveValueAry[i]=saveValueAry[i+1]+1;
                }
            }
            //累加
            int Sum=0;
            for (int i = 0; i < length; i++) {
                Sum+=saveValueAry[i];
            }

            return Sum;
        }
    }

4、执行结果

image.png

相关文章

  • 经典算法题:分发糖果

    135. 分发糖果[https://leetcode.cn/problems/candy/] 难度:困难 n 个孩...

  • LeetCode 135. 分发糖果

    1、题目 分发糖果 - 力扣(LeetCode) https://leetcode-cn.com/problems...

  • LeetCode-python 135.分发糖果

    题目链接难度:困难 类型: 数组 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会...

  • LeetCode 力扣 135. 分发糖果

    题目描述(困难难度) 给 N 个小朋友分糖,每个人至少有一颗糖。并且有一个 rating 数组,如果小朋友的 ra...

  • 135. 分发糖果

    题目描述: 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需...

  • 135. 分发糖果

    题目链接:https://leetcode-cn.com/problems/candy/ 思路:数组「rating...

  • 135. 分发糖果

    老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要...

  • 135. 分发糖果

    老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要...

  • LeetCode135. 分发糖果

    题目 135. 分发糖果 题目描述 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现...

  • python实现leetcode之135. 分发糖果

    解题思路 按照分数由低向高分发先按照分数排序,并且记住原始下标然后依次分发糖果,分发的时候,看两侧是不是分数比她低...

网友评论

      本文标题:LeetCode 135. 分发糖果

      本文链接:https://www.haomeiwen.com/subject/vggtrctx.html