当前位置: 首页 > news >正文

LeetCode135☞分糖果

关联LeetCode题号135

本题特点
  • 贪心
  • 两次遍历,一次正序遍历,只比较左边,左边比右边大的情况 i-1 i
  • 一次倒序遍历,只比较右边的,右边比左边大 i+1 i
本题思路
class Solution:
    def candy(self, ratings: List[int]) -> int:
        candy = [1] * len(ratings)
        # 右大于左
        for i in range(1, len(ratings)):
            if ratings[i] > ratings[i-1]:
                candy[i] = candy[i-1] + 1
        # 左大于右
        for j in range(len(ratings)-2, -1, -1):
            if ratings[j] > ratings[j+1]:
                candy[j] = max(candy[j+1]+1, candy[j])
        print(candy)
        return sum(candy)
package leetcode;

import org.junit.jupiter.api.Test;

/**
 * File Description: Candy
 * Author: Your Name
 * Date: 2024/12/24
 */
public class Candy_135 {
    public int candy(int[] ratings) {
        int[] candy = new int[ratings.length];
        candy[0] = 1;
        for (int i=1; i<ratings.length; i++){
//            if (ratings[i-1] < ratings[i]){
//                candy[i] = candy[i-1] + 1;
//            }else{
//                candy[i] = 1;
//            }
            candy[i] = (ratings[i-1] < ratings[i]) ? candy[i-1]+1 : 1;
        }
        for(int j=ratings.length-2; j>=0; j--){
            if (ratings[j] > ratings[j+1]){
                candy[j] = Math.max(candy[j], candy[j+1]+1);
            }

        }
        int sum = 0;
        for(int c: candy){
            sum += c;
        }
        return sum;
    }

    @Test
    public void TestCandy(){
        int[] rating = {1,0,2};
        System.out.println(candy(rating));
    }
}

相关文章:

  • 【每日论文】Rewards Are Enough for Fast Photo-Realistic Text-to-image Generation
  • 实现前端.ttf字体包的压缩
  • 日程提醒类软件选择用哪个?理由是什么?
  • error LNK2019: 无法解析的外部符号 main,函数 “int __cdecl invoke_main(void)“
  • 信创系统极速文件查找:locate 命令详解
  • 【初学者】请介绍一下指针分析(Pointer Analysis)?
  • 三.Go的第一个程序hello.go
  • Python pyqt+flask做一个简单实用的自动排班系统
  • 天梯赛 L2-010 排座位
  • MATLAB例程:TOA测距定位,三维任意(>3)个锚节点,对一个未知点定位、带EKF的轨迹解算(附代码下载链接)
  • Python核心:Django配置swagger的详细步骤和代码举例
  • 如何实现一个call函数?
  • TCP 协议
  • Java EE(12)——网络编程——UDP/TCP回显服务器
  • 2024年国赛高教杯数学建模E题交通流量管控解题全过程文档及程序
  • C语言编译链接详解
  • Matplotlib 柱形图
  • 卡码网25题——掌握ACM输入输出方式(15 至 18)
  • 【大模型面试知识】基础问题分析总结
  • AnyTouch:跨多个视觉触觉传感器学习统一的静态动态表征
  • 晶圆销量上升,中芯国际一季度营收增长近三成,净利增超1.6倍
  • 国家主席习近平同普京总统共见记者
  • 安徽六安原市长潘东旭,已任省市场监督管理局党组书记、局长
  • 吴清稳市场稳预期发布会十要点:谈平准基金、股市稳定、公募改革和巴菲特
  • 巴基斯坦军方称印度袭击已致26死46伤
  • 同观·德国|默茨当总理后,能否带领德国在欧盟“说了算”?