Candy
来源:互联网 发布:盐城办公软件培训 编辑:程序博客网 时间:2024/06/06 09:54
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?
class Solution {public: int candy(vector<int>& ratings) { int len = ratings.size(); if(len <= 1) return len; vector<int> num(len, 1); int start = 0, count = 0; while(start < len) { for(int i = start + 1; i < len; ++i) { if(ratings[i-1] > ratings[i]) count++; else break; } for(int i = start; i <= start + count; ++i) num[i] += count - i + start; start += count + 1; count = 0; } for(int i = 1; i < len; ++i) { if(ratings[i] > ratings[i-1]) num[i] = num[i-1] + 1; else if(ratings[i] == ratings[i-1]) continue; else { if(num[i] >= num[i-1]) { int j = i; while(--j >= 0 && ratings[j] > ratings[j+1] && num[j] <= num[j+1]) num[j] = num[j+1] + 1; } } } int res = 0; for(int i = 0; i < len; ++i) res += num[i]; return res; }};
0 0
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- candy
- Candy
- Candy
- Candy
- Candy
- MySQL分页limit的使用方法
- First Blood.
- JS+AJAX(.ASHX) 实现用户登录
- Follow your heart
- hdu 5389 Zero Escape(dp类似背包)
- Candy
- UVa 821- Page Hopping(Floyd)
- Linux sed 命令
- 赋值和属性变量下划线
- [LeetCode]Linked List Cycle
- Android - SimpleAdapter适配器支持的组件及Listview模拟下载
- Codeforces Round #305 (Div. 2) 548D Mike and Feet(单调栈)
- 数据-二分图-F - Air Raid
- 数据结构与算法练习Java版练习1.9和1.10