[力扣题解]135. 分发糖果

[困难] 题目:135. 分发糖果

思路

贪心法

代码

// 贪心
// Step 1 : 从左往右
// Step 2 : 从右往左
class Solution {
public:
    int candy(vector<int>& ratings) {

        int i, size = ratings.size(), sum = 0;
        vector<int> candy(size, 1); // 基础是1个

        for(i = 0; i < size-1; i++)
        {
            // 右边孩子分高些
            if(ratings[i] < ratings[i+1])
            {
                // 从左往右,依据左边
                candy[i+1] = candy[i] + 1;
            }
        
        }
        
        for(i = size-1; i > 0; i--)
        {
            if(ratings[i-1] > ratings[i])
            {
                // 从右往左,依据右边
                candy[i-1] = max(candy[i] + 1, candy[i-1]);
                // 为什么要用 max 呢?
                
            }
        }
        
        for(i = 0; i < size; i++)
        {
            sum += candy[i];
        }
        return sum;
    }
};
  • (1)为什么第一次for循环从左到右,下一次从右到左?
    这两次for循环方向相反,有一点像动态规划。从左到右是因为比较的时候要用到左边的元素,所以从左到右,从右到左同理;
  • (2)为什么要用max?
    因为不这样,上一个从左到右的for就白费了,要保证既大于右边的(上一次for循环比较的结果不能丢),又大于左边的(这次比较的结果)

相关推荐

  1. [题解]135. 分发糖果

    2024-05-13 14:18:09       30 阅读
  2. 135. 分发糖果

    2024-05-13 14:18:09       55 阅读
  3. -135.分发糖果

    2024-05-13 14:18:09       49 阅读
  4. 135. 分发糖果(贪心)

    2024-05-13 14:18:09       58 阅读
  5. [题解]131. 分割回文串

    2024-05-13 14:18:09       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 14:18:09       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 14:18:09       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 14:18:09       82 阅读
  4. Python语言-面向对象

    2024-05-13 14:18:09       91 阅读

热门阅读

  1. Leetcode 3145. Find Products of Elements of Big Array

    2024-05-13 14:18:09       35 阅读
  2. 《管理评论》文本分析技术最新进展总结盘点

    2024-05-13 14:18:09       24 阅读
  3. css 实现背景图和背景色正片叠底

    2024-05-13 14:18:09       30 阅读
  4. git cherry-pick命令使用

    2024-05-13 14:18:09       32 阅读
  5. SpringMVC

    2024-05-13 14:18:09       25 阅读
  6. 深入理解深度学习中的指数移动平均(EMA)

    2024-05-13 14:18:09       29 阅读
  7. C++运算符重载

    2024-05-13 14:18:09       32 阅读
  8. BIO、NIO、多路复用

    2024-05-13 14:18:09       35 阅读
  9. 负载均衡技术

    2024-05-13 14:18:09       31 阅读