【刷题日记】1403. 非递增顺序的最小子序列

简介: 【刷题日记】1403. 非递增顺序的最小子序列

一、题目描述:

继续开始我们的每日一题,做一做非递增顺序的最小子序列

image.png

二、这道题考察了什么思想?你的思路是什么?

看到子序列,我们是否会想到之前我们做过的很多关于子序列的题目呢,这一次的子序列又有啥不一样的呢,来仔细看看题目

看看题目,我们知道有如下几个要求:

  • 题目给出一个乱序的序列,要求我们输出非递增的子序列
  • 对于输出的子序列题目有两个要求
  • 序列长度最短,要求序列和大于剩余序列和,且出现同种情况取数值较大的一种

分析

如何去思考这道题目呢,题目要求我们输出非递增的序列,意味着,我们需要做排序操作这个是没得说的

还要求我们输出的序列和要大于剩余的序列和,意味着,我们需要做数据的求和与比较

其实看到这里就比较明确了,稍加梳理,我们就知道如何去落地这么一个小需求了

例如,示例中,我们可以看到

元数据: 4 4 7 6 7
排序后: 7 7 6 4 4
筛选结果1 7 7 6 4 4 不满足
筛选结果2 7 7 6 4 4 不满足
筛选结果3 7 7 6 4 4 满足条件

接下来咱们就来撸代码吧

三、编码

根据上述逻辑和分析,我们就可以翻译成如下代码,咱们需要做这些事情

  • 排序,从大到小排序
  • 求和
  • 贪心,从最大的数字开始累加,第一次累加和大于剩下的数字和为止

编码如下:

func minSubsequence(nums []int) []int {
    // 排序,从大到小排序
    sort.Sort(sort.Reverse(sort.IntSlice(nums)))
    // 求和
    var total int
    for _,num := range nums {
        total += num
    }
    // 贪心,从最大的数字开始累加,第一次累加和大于剩下的数字和为止
    var sum int
    for i,num := range nums {
       sum += num
       if sum > total - sum {
           return nums[:i+1] 
       }
    }
    return []int{}
}

四、总结:

image.png

时间复杂度是多少呢,我们知道咱们使用了库里面的排序算法,一般是使用了快速排序,因此咱们的的时间复杂度是 O(nlogn)

空间复杂度是 O(1) 吗? nonono, 虽然显示的我们没有占用其他的空间消耗,实际上比较大的空间消耗是是 O(logn) ,也是消耗在排序上面的

原题地址:1403. 非递增顺序的最小子序列

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

image.png

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~

相关文章
|
存储 安全 Shell
⭐⭐【Shell 命令集合 文件传输 】Linux ftp工具 使用指南
⭐⭐【Shell 命令集合 文件传输 】Linux ftp工具 使用指南
377 0
|
机器学习/深度学习 存储 文字识别
Qt5 和 OpenCV4 计算机视觉项目:1~5(5)
Qt5 和 OpenCV4 计算机视觉项目:1~5(5)
163 0
|
11月前
|
编解码 算法 数据挖掘
基于MUSIC算法的六阵元圆阵DOA估计matlab仿真
该程序使用MATLAB 2022a版本实现基于MUSIC算法的六阵元圆阵DOA估计仿真。MUSIC算法通过区分信号和噪声子空间,利用协方差矩阵的特征向量估计信号到达方向。程序计算了不同角度下的MUSIC谱,并绘制了三维谱图及对数谱图,展示了高分辨率的DOA估计结果。适用于各种形状的麦克风阵列,尤其在声源定位中表现出色。
|
机器学习/深度学习 搜索推荐 算法
个性化音色定制:FunAudioLLM 的用户偏好学习机制
【8月更文第28天】随着语音合成技术的发展,越来越多的应用程序允许用户定制自己喜爱的声音类型。FunAudioLLM 是一个虚构的语音合成框架,它利用机器学习算法来适应用户的个人偏好,从而生成更加个性化的音色。本文将介绍 FunAudioLLM 如何通过用户偏好学习机制来调整和优化声音输出,并提供一些示例代码。
371 0
|
SQL XML Java
MyBatis 实现动态 SQL
 MyBatis 中的动态 SQL 就是SQL语句可以根据不同的情况情况来拼接不同的sql。 本文会介绍 xml 和 注解 两种方式的动态SQL实现方式。
267 1
|
JavaScript 搜索推荐 定位技术
【百度地图2.5D、3D在Vue项目中的使用】嵌入二维百度地图、三维百度地图、多种显示模式风格样式颜色的百度地图
【百度地图2.5D、3D在Vue项目中的使用】嵌入二维百度地图、三维百度地图、多种显示模式风格样式颜色的百度地图
|
分布式计算 关系型数据库 MySQL
实战:在Linux上部署各类软件
实战:在Linux上部署各类软件
|
存储
【Vue3】vue3 + ts 封装城市选择组件
【Vue3】vue3 + ts 封装城市选择组件
349 0
|
应用服务中间件 Linux 网络安全
使用 Certbot 配置 HTTPS,让你的网站不再裸奔
使用 Certbot 配置 HTTPS,让你的网站不再裸奔
188 0
|
机器学习/深度学习 人工智能 Cloud Native