python-leetcode-拥有最多糖果的孩子

1431. 拥有最多糖果的孩子 - 力扣(LeetCode)

用 Python 代码实现这个功能,思路如下:

  1. 找到当前孩子中拥有最多糖果的数量 max_candies
  2. 遍历 candies 数组,判断如果给当前孩子分配 extraCandies 之后,他的糖果数是否大于等于 max_candies
  3. 如果是,则结果为 True,否则为 False

代码实现如下:

from typing import List

def kidsWithCandies(candies: List[int], extraCandies: int) -> List[bool]:
    max_candies = max(candies)  # 找到当前最多的糖果数
    return [candy + extraCandies >= max_candies for candy in candies]

# 测试
candies = [2, 3, 5, 1, 3]
extraCandies = 3
print(kidsWithCandies(candies, extraCandies))  # [True, True, True, False, True]

复杂度分析:

  • 找到 max_candies 需要 O(n)
  • 遍历 candies 计算结果需要 O(n)
  • 总体时间复杂度为 O(n),空间复杂度也是 O(n)(存储结果的列表)。

这个方法高效简洁,适用于大多数情况。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值