leetcode Candy
2016-09-08 11:13
274 查看
需要考虑升序和降序两种情况,升序比较好办,我们只需要将前一个索引位置的candy+1即可,如果是降序就比较麻烦,我们可以举个例子:
5 4 3 2
我们默认第一个位置5的初始值candy肯定是1,但当到4的时候,发现5给的1个candy太少了,需要+1,同理到3的时候,发现5和4给的candy太少了,需要分别+1,也就是当降序的时候我们需要不断修正结果,以得到正确结果,而很明显,这个修正的数与降序的长度有关,代码:
5 4 3 2
我们默认第一个位置5的初始值candy肯定是1,但当到4的时候,发现5给的1个candy太少了,需要+1,同理到3的时候,发现5和4给的candy太少了,需要分别+1,也就是当降序的时候我们需要不断修正结果,以得到正确结果,而很明显,这个修正的数与降序的长度有关,代码:
public int candy(int[] ratings) { int res=1; if(ratings.length==0) return 0; int length=0; int prevcan=1; int berfordes=1; for(int i=1;i<ratings.length;i++){ if(ratings[i]>=ratings[i-1]){ int curcandy=prevcan; if(ratings[i]>ratings[i-1]){ curcandy+=1; } else curcandy=1; res+=curcandy; prevcan=curcandy; berfordes=curcandy; length=0; } else{ length++; if(berfordes<=length) res++; res+=length; prevcan=1; } } return res; }
相关文章推荐
- LeetCode 135 : Candy
- Leetcode-Candy
- LeetCode :: Candy
- Candy [leetcode] O(n)时间复杂度,O(1)空间复杂度的方法
- LeetCode139: Candy
- 【leetcode】Candy
- leetcode135~Candy
- LeetCode(135)Candy
- [leetcode]Candy
- [leetcode 135] Candy
- 开始leetcode day9:Candy
- leetcode_Candy
- LeetCode 135:candy 题解 Python
- LeetCode 解题报告 Candy
- LeetCode 135 Candy
- LeetCode Candy 两种解法
- leetCode Candy解题分享
- LeetCode之Candy
- leetcode :Candy
- [LeetCode]Candy