22: Candy
来源:互联网 发布:众筹源码 编辑:程序博客网 时间:2024/05/21 12:47
注:本题的解法思想及代码参考了网址https://github.com/soulmachine/leetcode#leetcode题解
题目:There are N children standing in a line. Each child is assigned a rating value. You are giving candies to these children subjected to the following requirements:
• Each child must have at least one candy.
• Children with a higher rating get more candies than their neighbors.
What is the minimum candies you must give?
解题代码如下:
//时间复杂度O(n),空间复杂度O(n)class Solution {public: int candy(vector<int>& ratings) { const int n = ratings.size() vector<int> increment(n); //左右各扫描一遍 for (int i = 1, inc = 1; i < n; ++i) if (ratings[i] > ratings[i - 1]) increment[i] = max(inc++, increment[i]) else inc = 1; for (int i = n - 2, inc = 1; i >= 0; --i) if (ratings[i] > ratings[i + 1]) incremet[i] = max(inc++, increment[i]); else inc = 1; //初始值为 n, 因为每一个小朋友至少一颗糖 return accumulate(increment.begin(), increment.end(), n); }};
0 0
- 22: Candy
- 2.1.22 Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- candy
- Candy
- Candy
- 日程确定与完成-日事清
- (42)Java学习笔记——IO流 / 字节流
- 1-安卓底层-基础
- 二叉树的最小深度
- centos服务器搭建-MySQL-Binaries-5.6.35
- 22: Candy
- 2-安卓底层-java实现调用linux系统调用
- 如何访问谷歌学术?XX-net
- 深度增强学习前沿算法思想【DQN、A3C、UNREAL,简介】
- Java面向对象的程序设计
- 支持向量机通俗导论(理解SVM的三层境界)
- LeetCode 16. 3Sum Closest
- 漫步数学分析十七——连续映射上的运算
- spring AOP + 自定义注解实现权限控制小例子