当前位置:网站首页>LeetCode·每日一题·1403.非递增顺序的最小子序列·贪心
LeetCode·每日一题·1403.非递增顺序的最小子序列·贪心
2022-08-04 15:51:00 【小迅想变强】
链接:https://leetcode.cn/problems/minimum-subsequence-in-non-increasing-order/solution/by-xun-ge-v-pray/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
题目
示例
思路
解题思路
题目需要得到 元素之和最大 长度最小 的子序列,并非子串,说明答案与位置无关,可以对原字符串进行处理,这里最简单的处理就是升序处理,因为我们需要最大元素
将数组元素升序处理,并统计数组元素和 max ,因为需要的 子序列的元素之和 严格 大于未包含在该子序列中的各元素之和 -> 我们取的子序列元素和*2应该刚刚好大于整个元素和
贪心思想:
每次取元素都从最大值开始,从而保证长度最短而元素之和最大
代码
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int cmp(const void * a, const void * b)//升序
{
return *(int *)a - *(int *)b;
}
int* minSubsequence(int* nums, int numsSize, int* returnSize){
qsort(nums, numsSize, sizeof(int), cmp);
int * ans = malloc(sizeof(int) * numsSize);
int max = 0;//初始化变量
for(int i = 0; i < numsSize; i++)//统计元素和
{
max += nums[i];
}
*returnSize = 0;
int sum = 0;
for(int i = numsSize-1; i >= 0; i--)//从最大值开始取元素
{
if(sum*2 > max)
break;
sum += nums[i];
ans[(*returnSize)++] = nums[i];
}
return ans;
}
作者:xun-ge-v
链接:https://leetcode.cn/problems/minimum-subsequence-in-non-increasing-order/solution/by-xun-ge-v-pray/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。边栏推荐
- 你一定从未看过如此通俗易懂的YOLO系列(从v1到v5)模型解读
- 多商户商城系统功能拆解24讲-平台端分销会员
- 实战:10 种实现延迟任务的方法,附代码!
- 张乐:研发效能的黄金三角及需求与敏捷协作领域的实践|直播回顾
- DevOps平台中的制品库是什么?有什么用处?
- 查看每个数据库分配给了哪些用户权限,这个有接口吗
- 【愚公系列】2022年07月 Go教学课程 028-函数小结案例(通讯录)
- 把boot和APP一起烧录进MCU
- DocuWare Platform - Content Services and Workflow Automation Platform for Document Management (Part 1)
- Why, when you added a unique index or create duplicate data?
猜你喜欢

ITSM软件与工单系统的区别是什么?

我在羊毛和二手群里报复性消费

GPS卫星同步时钟,NTP网络同步时钟,北斗时钟服务器(京准)

(2022杭电多校五)C - Slipper (dijkstra+虚拟结点)

numpy入门详细代码

JVM Tuning-GC Fundamentals and Tuning Key Analysis

Why, when you added a unique index or create duplicate data?

06-总线

remote: Check Access Error, please check your access right or username and password!fatal: Authenti

B 站又上热搜了, HR 称「核心用户都是 Loser」
随机推荐
Redis的主从复制和集群
分支控制if-else
【Jprofile 11.0 安装】
使用百度EasyDL实现森林火灾预警识别
Crawler Xiaobai Notes (yesterday's supplement to pay attention to parsing data)
分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享
直播回放含 PPT 下载|基于 Flink & DeepRec 构建 Online Deep Learning
功率放大器的设计要点
实战:10 种实现延迟任务的方法,附代码!
ITSM软件与工单系统的区别是什么?
To ensure that the communication mechanism
GPS卫星同步时钟,NTP网络同步时钟,北斗时钟服务器(京准)
Go 言 Go 语,一文看懂 Go 语言文件操作
【伸手党福利】投影仪初学者入门——投影亮度及幕布选择——从入门到精通
MySQL select加锁分析
素士科创板IPO撤单,雷军失去“电动牙刷第一股”
【Go事】一眼看穿 Go 的集合和切片
数据分析入门导读
What are the useful IT asset management platforms?
Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇