LeetCode 解题报告 Candy
2014-11-13 09:27
495 查看
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?
分析:
今年在做4399的笔试题的时候,遇到了这个题,当时没有一点思路。
这次再拿到这个题的时候还是没有什么思路,但感觉应该是动态规划的题,后来在网上看了解题报告之后,证实了我的猜想,虽然对动态规划有所了解 ,但如果真的让自己从头到尾的把题想出来,做出来,真的是有难度
下面就说说这个题的思路吧
要求每人至少一个,但临近的人并且比别人高,所拿到的糖就要多
首先用一个数组来保存每一个位置的大小,从左右两边遍历,如果后一个比前一个大,num[i] = max(inc++,num[i]);
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?
分析:
今年在做4399的笔试题的时候,遇到了这个题,当时没有一点思路。
这次再拿到这个题的时候还是没有什么思路,但感觉应该是动态规划的题,后来在网上看了解题报告之后,证实了我的猜想,虽然对动态规划有所了解 ,但如果真的让自己从头到尾的把题想出来,做出来,真的是有难度
下面就说说这个题的思路吧
要求每人至少一个,但临近的人并且比别人高,所拿到的糖就要多
首先用一个数组来保存每一个位置的大小,从左右两边遍历,如果后一个比前一个大,num[i] = max(inc++,num[i]);
public class Candy { public int candy(int[] ratings) { int [] num = new int[ratings.length]; int result =ratings.length; for(int i=1,inc = 1;i<ratings.length;i++){ if(ratings[i] > ratings[i-1]){ num[i] = Math.max(num[i],inc++); } else inc = 1; } for(int i = ratings.length-2,inc = 1;i>=0;i--){ if(ratings[i] > ratings[i+1]) num[i] = Math.max(inc++, num[i]); else inc = 1; } for(int i=0;i<ratings.length;i++){ result += num[i]; } return result; } }
相关文章推荐
- leetCode解题报告之Candy(简单回溯)
- [LeetCode]Candy, 解题报告
- Leetcode 135 Candy 解题报告
- LeetCode: Candy 解题报告
- 【LeetCode】Candy 解题报告
- [leetcode] 230. Kth Smallest Element in a BST 解题报告
- 【LeetCode】448.Find All Numbers Disappeared in an Array(Easy)解题报告
- [LeetCode] First Missing Positive 解题报告
- LeetCode 319. Bulb Switcher 解题报告
- 【LeetCode】321.Create Maximum Number(Hard)解题报告
- [LeetCode] Path Sum II 解题报告
- [LeetCode] Subsets II 解题报告
- 【LeetCode】599.Minimum Index Sum of Two Lists(Easy)解题报告
- [LeetCode] Reverse Nodes in k-Group 解题报告
- 【LeetCode】Sort List 解题报告(对链表进行归并排序)
- 【LeetCode】235.Lowest Common Ancestor of a Binary Search Tree(Easy)解题报告
- LeetCode 516. Longest Palindromic Subsequence 解题报告
- LeetCode解题报告—— 4Sum & Remove Nth Node From End of List & Generate Parentheses
- Leetcode 98. Validate Binary Search Tree 验证二叉搜索树 解题报告
- leetCode解题报告5道题(一)