leetcode:拥有糖果最多的孩子

news/2024/10/18 9:23:36/

拥有最多糖果的孩子

给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。

对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。

示例 1:

输入:candies = [2,3,5,1,3], extraCandies = 3
输出:[true,true,true,false,true] 
解释:
孩子 1 有 2 个糖果,如果他得到所有额外的糖果(3个),那么他总共有 5 个糖果,他将成为拥有最多糖果的孩子。
孩子 2 有 3 个糖果,如果他得到至少 2 个额外糖果,那么他将成为拥有最多糖果的孩子。
孩子 3 有 5 个糖果,他已经是拥有最多糖果的孩子。
孩子 4 有 1 个糖果,即使他得到所有额外的糖果,他也只有 4 个糖果,无法成为拥有糖果最多的孩子。
孩子 5 有 3 个糖果,如果他得到至少 2 个额外糖果,那么他将成为拥有最多糖果的孩子。

示例 2:

输入:candies = [4,2,1,1,2], extraCandies = 1
输出:[true,false,false,false,false] 
解释:只有 1 个额外糖果,所以不管额外糖果给谁,只有孩子 1 可以成为拥有糖果最多的孩子。

示例 3:

输入:candies = [12,1,12], extraCandies = 10
输出:[true,false,true]

提示:

  • 2 <= candies.length <= 100
  • 1 <= candies[i] <= 100
  • 1 <= extraCandies <= 50
class Solution:def kidsWithCandies(self, candies: List[int], extraCandies: int) -> List[bool]:max_num = max(candies)res = [candies[i] + extraCandies >= max_num for i in range(len(candies))]#列表推导式适用于数据小的情况,数据庞大时适用迭代器节省内存空间#candies[i] + extraCandies >= max_num返回一个布尔值return list(res)
  • 时间复杂度:

    这个函数的时间复杂度是O(n),其中n是candies列表的长度。

    首先,函数中的max()函数调用会遍历整个candies列表,以找到最大值。这一步需要O(n)的时间复杂度。

    接下来,使用列表推导式创建结果列表res,会对candies列表中的每个元素进行遍历,进行判断和运算。这一步同样需要O(n)的时间复杂度。

    因此,整个函数的时间复杂度是O(n)。无论candies列表的大小如何增长,函数的运行时间都会以线性的方式增长。

  • 空间复杂度:

    这个函数的空间复杂度是O(n),其中n是candies列表的长度。

    在函数中,创建了一个新的列表res来存储结果。这个列表的长度与candies列表的长度相同,因此需要占用O(n)的额外空间。

    除此之外,其他的变量和操作都是常数级别的,不会随着输入大小的增加而增加额外的空间。

    因此,整个函数的空间复杂度主要由结果列表res所占用的空间决定,是O(n)。


http://www.ppmy.cn/news/701374.html

相关文章

动态加载 so 注意事项案例,hashmap和concurrenthashmap的区别

android.os.Build.SUPPORTED_ABIS android.os.Build.CPU_ABI android.os.Build. CPU_ABI2 这些变量用于查询设备支持的架构&#xff0c;其中 SUPPORTED_ABIS 是API Level 21引入来代替CPU_ABI, CPU_ABI2的。 如果目标平台的 API Level 小于 21&#xff0c;只能使用 CPU_ABI …

python 小项目--手机销售系统

学Python也有4天了 不得不吐槽 用缩进来控制代码块 对于我Java程序员 挺痛苦的 大概半小时把 写了一个小案例 bug肯定是很多 对于这种命令行的系统 大一C语言的学生成绩管理系统 我整整写了一周 ……源代码在下面 勿喷~_~ #codingutf-8 import os #初始化数据 def init…

基于python的手机销售系统

手机销售系统手机品牌 手机价格 库存数量vivoX9 2798 25iphone7(32G) 4888 31iphone7(128G) 5668 22iphone7P(128G) 6616 29iphone6(16G) 3858 14............ 功能要求&#xff1a;四个选…

airtest运行keyevent时报错NameError:name ‘keyevent’ is not defined

记一个报错问题 NameError&#xff1a;name keyevent is not defined 环境&#xff1a; 手机&#xff1a;vivox9 安卓&#xff1a;7.1.2 adb版本&#xff1a;40 运行环境&#xff1a;airtestIDE 情况&#xff1a; keyevent(BACK)时报错&#xff0c;airtest其他操作正常 …

闭包实现函数柯里化,js实现

闭包实现函数柯里化&#xff0c;js实现 函数柯里化定义代码实现 函数柯里化定义 柯里化&#xff08;Currying&#xff09;是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数&#xff0c;并且返回接受余下的参数且返回结果的新函数的技术 即函数可以接…

【Java校招面试】实战算法(一)——背包问题总结

目录 前言一、01背包二、变种01背包1——多重背包三、变种01背包2四、完全背包五、变种完全背包六、二维背包七、分组背包八、注意后记前言 “实战算法”是本专栏的第三个部分,本篇博文是第一篇博文,主要收集了常见的背包问题及其变种,如有需要,可: 点击这里,返回本专栏…

windows server 2016安装网卡驱动【引用】

https://blog.csdn.net/a812073479/article/details/81514695

Postgresql JDBC驱动下载官网

https://jdbc.postgresql.org/download.html