当前位置:网站首页>【LeetCode】1403.非递增顺序的最小子序列
【LeetCode】1403.非递增顺序的最小子序列
2022-08-04 10:50:00 【酥酥~】
题目
给你一个数组 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
题解
贪心
从大到小依次取出,直到取出的子序列和严格大于剩余元素和
class Solution {
public:
vector<int> minSubsequence(vector<int>& nums) {
sort(nums.begin(),nums.end(),greater<int>());
int sum = accumulate(nums.begin(),nums.end(),0);
vector<int> result;
int sum_tmp = 0;
for(int k:nums)
{
result.push_back(k);
sum_tmp+=k;
if(sum_tmp > sum - sum_tmp)
break;
}
return result;
}
};
边栏推荐
猜你喜欢

mae,mse,rmse分别利用sklearn和numpy实现

C language * Xiaobai's adventure

广东对小鹏/广汽丰田开展网络安全检查

8月活动|51CTO十七周年庆,发博文得茶具/笔记本/T恤等礼品!

Multimedia and Internet of Things technology make the version "live" 129 vinyl records "Centennial Voice"

Use pytest hook function to realize automatic test result push enterprise WeChat

深度学习100例 —— 卷积神经网络(CNN)天气识别

图文手把手教程--ESP32 MQTT对接EMQX本地服务器(VSCODE+ESP-IDF)

What is the terminal privilege management

使用.NET简单实现一个Redis的高性能克隆版(二)
随机推荐
HCIP 交换实验
少即是多:视觉SLAM的点稀疏化(IROS 2022)
Mysql高级篇学习总结13:多表连接查询语句优化方法(带join语句)
Meishe Q&A Room | Meiying VS Meishe Cloud Editing
There are 12 balls, including 11 weight, only one, don't know is light or heavy. Three times in balance scales, find out the ball.
MySQL核心SQL:结构化查询语句SQL、库操作、表操作、CRUD
[Hongke case] Assembling furniture based on 3D camera
有12个球,其中11个重量相等,只有1个不一样,不知是轻还是重.用天平秤三次,找出这个球.
Camunda整体架构和相关概念
在 .NET MAUI 中如何更好地自定义控件
MySQL:面试问的范式设计
Win11文件类型怎么改?Win11修改文件后缀的方法
强烈推荐一款优秀且通用的后台管理系统
Introduction to Mysql storage engine
Business collocations
手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
mae,mse,rmse分别利用sklearn和numpy实现
【励志】复盘的重要性
从零开始Blazor Server(7)--使用Furion权限验证
ORA-00054 资源正忙