● 135.分发糖果
1.思路
自己出bug的地方:在第一次从左到右遍历,判断右侧的值是否大于左边时,没有考虑非的情况,即要赋初值1.
2.代码实现
class Solution {
public int candy(int[] ratings) {
int len=ratings.length;
int[] candyVec=new int[len];
candyVec[0]=1;
for(int i=1;i<len;i++){
if(ratings[i]>ratings[i-1])
candyVec[i]=candyVec[i-1]+1;
else
candyVec[i]=1;
}
for(int i=(len-2);i>=0;i--){
if(ratings[i]>ratings[i+1])
candyVec[i]=Math.max(candyVec[i],candyVec[i+1]+1);
}
int ans=0;
for(int i=0;i<len;i++){
ans+=candyVec[i];
}
return ans;
}
}
● 模板
1.思路
2.代码实现