Leetcode 135-分发糖果

1)所有人分1个candy

2)从左往右查看,若满足左规则,令 candy[i] =candy[i - 1] + 1

3)从右往左查看,若满足右规则,令 candy[j] =Math.max(candy[j + 1] + 1,candy[j]),取最大值是为了在满足右规则的时候不破坏左规则

bash 复制代码
class Solution {
    public int candy(int[] ratings) {
        if(ratings.length==0) return 0;
        int candy[] =new int[ratings.length];
        int total=0;
        candy[0]=1;
        //从左向右遍历数组使其满足左规则
        for(int i=1;i<ratings.length;i++){
            candy[i]=1;
            if(ratings[i]>ratings[i-1]){
                candy[i]=candy[i-1]+1;
            }
        }
        //从右向左遍历数组使其满足左规则
        for(int i=ratings.length-2;i>=0;i--){
            if(ratings[i]>ratings[i+1]){
                candy[i]=Math.max(candy[i+1]+1,candy[i]);
            }
        }
         //遍历获得糖果总数
        for(int i=0;i<ratings.length;i++){
            total+=candy[i];
        }
        return total;

    }
}
相关推荐
Lucis__4 小时前
哈希实现&封装unordered系列容器
数据结构·c++·算法·哈希封装
爱编程的小吴4 小时前
【力扣练习题】热题100道【哈希】189. 轮转数组
算法·leetcode·哈希算法
wjykp4 小时前
105~108SVMf
算法
leoufung4 小时前
LeetCode 322. Coin Change:从错误思路到正确一维 DP
算法·leetcode·职场和发展
旧梦吟4 小时前
脚本网页 双子星棋
算法·flask·游戏引擎·css3·html5
ullio4 小时前
arc205d - Non-Ancestor Matching
算法
wa的一声哭了5 小时前
内积空间 正交与正交系
java·c++·线性代数·算法·矩阵·eclipse·云计算
SWAGGY..5 小时前
数据结构学习篇(8)---二叉树
数据结构·学习·算法
星轨初途5 小时前
牛客小白月赛126
开发语言·c++·经验分享·笔记·算法