当前位置:网站首页>【LeetCode】1403. 非递增顺序的最小子序列
【LeetCode】1403. 非递增顺序的最小子序列
2022-08-04 13:04:00 【pass night】
题目
给你一个数组 nums
,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。
如果存在多个解决方案,只需返回 长度最小 的子序列。如果仍然有多个解决方案,则返回 元素之和最大 的子序列。
与子数组不同的地方在于,「数组的子序列」不强调元素在原数组中的连续性,也就是说,它可以通过从数组中分离一些(也可能不分离)元素得到。
注意,题目数据保证满足所有约束条件的解决方案是 唯一 的。同时,返回的答案应当按 非递增顺序 排列。
示例 1:
输入:nums = [4,3,10,9,8]
输出:[10,9]
解释:子序列 [10,9] 和 [10,8] 是最小的、满足元素之和大于其他各元素之和的子序列。但是 [10,9] 的元素之和最大。
示例 2:
输入:nums = [4,4,7,6,7]
输出:[7,7,6]
解释:子序列 [7,7] 的和为 14 ,不严格大于剩下的其他元素之和(14 = 4 + 4 + 6)。因此,[7,6,7] 是满足题意的最小子序列。注意,元素按非递增顺序返回。
示例 3:
输入:nums = [6]
输出:[6]
提示:
1 <= nums.length <= 500
1 <= nums[i] <= 100
思路
- 贪心,每一次取最大值,直到最大值集的和大于剩下元素和
- 可以使用最大堆也可以使用排序算法,因为Python没有内置的最大堆,所以使用排序算法
代码
class Solution:
def minSubsequence(self, nums: List[int]) -> List[int]:
total = sum(nums)
curruentTotal = 0
nums.sort(reverse=True)
ret = []
for n in nums:
if 2*curruentTotal>total: return ret
ret.append(n)
curruentTotal+= n
return ret
复杂度
- 时间复杂度: O ( n log n ) O(n\log n) O(nlogn)
- 空间复杂度: O ( n ) O(n) O(n)
边栏推荐
猜你喜欢
RobotFramework二次开发(一)
Do you understand the various configurations in the project?
LeetCode 1403 非递增顺序的最小子序列[贪心] HERODING的LeetCode之路
ShanDong Multi-University Training #4 A、B、C、G
Chinese valentine's day of young people crazy to make money, earn 140000 a week
redis未授权访问漏洞【vulhub靶场】复现
手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
项目里的各种配置,你都了解吗?
永磁同步电机FOC驱动代码讲解
"Social Enterprises Conducting Civilian Personnel Training Specifications" group standard on the shelves of Xinhua Bookstore
随机推荐
Cows 树状数组
【WeChat Mini Program】Social Internship Production Project for Information Management and Information System Major--Trash Fingerprint
Why don't young people like to buy Mengniu and Yili?
情人节浪漫3D照片墙【附源码】
Django使用腾讯云发送短信并存入redis
"Lonely Walking on the Moon" is a powerful medicine, it can't cure the internal friction of happy twist
“蔚来杯“2022牛客暑期多校训练营4 N
RT-Thread stm32 基础记录
微信小程序使用腾讯云对象储存上传图片
Diffusion Models:生成扩散模型
用过Apifox这个API接口工具后,确实感觉postman有点鸡肋......
Js获取当前页面url参数
03 多线程与高并发 - ReentrantLock 源码解析
使用COLMAP初步三维重建
ES 节点2G内存分析
Escape character is ‘^]’什么意思?怎么使用telnet
一分钟认识 IndexedDB 数据库,太强大了!
redisTemplate存取List遇到的坑
视觉SLAM十四讲学习笔记 第7讲 视觉里程计
Interviewer: How to view files containing abc string in /etc directory?