力扣135. 分发糖果

两次遍历

  • 思路:
    • 先从前往后遍历一次数组,如果后比前大,后获得的糖果数比前的加1,否则发1块糖果;
    • 然后从前往后遍历一次数组,如果后比前大,后获得糖果比前的加1,但是当前位置上同时要满足第一个规则,所以取两个规则中大的糖果数据;
class Solution {
public:
    int candy(vector<int>& ratings) {
        int size = ratings.size();
        std::vector<int> left(size);

        for (int i = 0; i < size; ++i) {
            if (i > 0 && ratings[i] > ratings[i - 1]) {
                left[i] = left[i - 1] + 1;
            } else {
                left[i] = 1;
            }
        }

        int right = 0;
        int result = 0;
        for (int i = size - 1; i >= 0; i--) {
            if (i < size - 1 && ratings[i] > ratings[i + 1]) {
                right++;
            } else {
                right = 1;
            }

            result += std::max(left[i], right);
        }

        return result;
    }
};

相关推荐

  1. 135. 分发糖果

    2024-01-02 08:20:02       35 阅读
  2. -135.分发糖果

    2024-01-02 08:20:02       30 阅读
  3. 135. 分发糖果(贪心)

    2024-01-02 08:20:02       35 阅读
  4. [题解]135. 分发糖果

    2024-01-02 08:20:02       11 阅读
  5. 135. 分发糖果

    2024-01-02 08:20:02       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-02 08:20:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-02 08:20:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-02 08:20:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-02 08:20:02       20 阅读

热门阅读

  1. python3使用sqlite3构建本地持久化缓存

    2024-01-02 08:20:02       38 阅读
  2. 【PostgreSQL】从零开始:(四十二)系统列

    2024-01-02 08:20:02       32 阅读
  3. 怎么获取客户端真实IP?GO

    2024-01-02 08:20:02       40 阅读
  4. django静态文件命名空间

    2024-01-02 08:20:02       42 阅读
  5. Django通用视图

    2024-01-02 08:20:02       30 阅读
  6. iostat获取IO延迟单位从ms调整us的方案

    2024-01-02 08:20:02       33 阅读
  7. 微信小程序如何分包管理

    2024-01-02 08:20:02       38 阅读