Leetcode 135-分发糖果

1)所有人分1个candy

2)从左往右查看,若满足左规则,令 candyi =candyi - 1 + 1

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

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;

    }
}
相关推荐
Sunsets_Red5 分钟前
浅谈扫描线
c++·算法·编程·题解·洛谷·扫描线·信息学竞赛
a187927218317 分钟前
【算法】双指针与滑动窗口(一):框架总纲——三类问题、一个原理与判决书
算法·leetcode·区间·双指针·滑动窗口·原理·算法讲解
shehuiyuelaiyuehao11 分钟前
算法42,模拟算法,模拟z字形变换
算法
朝朝辞暮i14 分钟前
C++第一课
开发语言·c++·算法
橘子汽水16821 分钟前
Leetcode 208,207实现Trie前缀树,课程表
java·数据结构·算法·leetcode
hanlin0325 分钟前
刷题笔记:力扣第169题-多数元素
笔记·算法·leetcode
hfywmsj32 分钟前
广州餐饮铺位招租数据建模:基于多维评估体系的选址算法设计与实现
人工智能·算法·广州餐饮铺位招租
wabs66640 分钟前
关于二叉树【力扣116.填充每个节点的下一个右侧节点指针的思考】
数据结构·c++·算法·leetcode·二叉树·层序遍历
Nil2081 小时前
leetcode 74搜索二维矩阵
算法·leetcode·矩阵
新知图书1 小时前
第 14 章 后训练算法GRPO详解与实战
人工智能·算法