135. Candy python+cpp

本文介绍了LeetCode的135题——Candy,通过贪心策略解决。解析中详细阐述了算法思路,即两次遍历考虑一侧相邻元素大小,确保每个孩子至少获得一个糖果。提供了Python和C++两种实现代码,分析了时间复杂度和空间复杂度。
摘要由CSDN通过智能技术生成

Leetcode 135. Candy

题目

在这里插入图片描述

解析

这道题使用贪心策略,核心思想就是一句话:每次遍历中,只考虑一侧相邻元素的大小关系。具体流程为:

  • 将糖果数组初始化为1,进行两次遍历
  • 第一次遍历从左向右进行,如果右侧位置对应的rating值比左侧大,将candy相应右侧位置的值更新为左侧元素加1
  • 第二次遍历从右向左进行,如果左侧元素对应的rating值比右侧元素要大,且左侧位置对应糖果不大于右侧位置,则更新左侧位置糖果值为右侧元素加1

python代码

class Solution:
    def candy(self, ratings: List[int]) -> int:
        N = len(ratings)
        candy = [1]*N
        
        for i in range(N-1):
            if ratings[i]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值