当前位置: 首页 > news >正文

LeeCode2294划分数组使最大值为K

项目场景:

给你一个整数数组 nums 和一个整数 k 。你可以将 nums 划分成一个或多个 子序列 ,使 nums 中的每个元素都 恰好 出现在一个子序列中。

在满足每个子序列中最大值和最小值之间的差值最多为 k 的前提下,返回需要划分的 最少 子序列数目。

子序列 本质是一个序列,可以通过删除另一个序列中的某些元素(或者不删除)但不改变剩下元素的顺序得到。

提示:

  • 1 <= nums.length <= 105
  • 0 <= nums[i] <= 105
  • 0 <= k <= 105


问题描述

        根据题意,这题要保证子序列的最大值和最小值的最大差值为K,那子序列中元素顺序对结果不会有影响,为了方便,我们对数组进行排序。对排序后的数组进行遍历,如果x-mn>k说明此时序列的最大值-最小值>k了,不满足要求,需要将此时的x放到新的子序列里,ans加1。因为num是经过排序的,则此时新序列的最小值mn被设置为x,之后持续循环即可。

class Solution:def partitionArray(self, nums: List[int], k: int) -> int:nums.sort()##数组排序ans=0mn=-inf##初始值设为无穷小for x in nums:if x-mn>k:ans+=1##子序列数量加1mn=xreturn ans

        以上为本篇文章的全部内容,感谢你抽出宝贵的时间阅读这篇文章。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!      

http://www.lryc.cn/news/572456.html

相关文章:

  • SQL分片工具类
  • C#上位机通过WebApi访问WinCC
  • 图像特征检测算法ORB
  • 目标检测之YOLOV11谈谈OBB
  • 基于Uniapp+PHP的教育培训系统开发指南:网校源码实战剖析
  • 【机械视觉】Halcon—【十五、一维码(条形码)和二维码识别】
  • SpringBoot扩展——发送邮件!
  • Java求职者面试指南:Spring, Spring Boot, Spring MVC, MyBatis技术点深度解析
  • Windows 10开始菜单优化方案,如何实现Win7风格开始菜单的还原
  • 火山引擎TTS使用体验
  • 类与对象(中)(详解)
  • 多卡解决报错torch.distributed.elastic.multiprocessing.errors.ChildFailedError的问题
  • API 接口:程序世界的通用语言与交互基因
  • 【音视频】PJSIP库——示例简介、C++类说明
  • 深度学习——激活函数
  • # python正则表达式——实战学习+理论
  • 跟踪大型语言模型的思想:对语言之间共享;提前规划;cot
  • RK3588调试之旅:adbd服务配置全攻略
  • stm32之使用中断控制led灯
  • 新生活的开启:从 Trae AI 离开后的三个月
  • linux操作命令(最常用)
  • 打破物理桎梏:CAN-ETH网关如何用UDP封装重构工业网络边界
  • 大模型更重要关注工艺
  • 目标检测之YOLOV11自定义数据使用OBB训练与验证
  • Neo4j常用语法-path
  • JS红宝书笔记 8.3 继承
  • 煤矿井下Modbus转Profibus网关的传感器与PLC互联解决方案
  • 机器学习×第十二卷:回归树与剪枝策略——她剪去多余的分支,只保留想靠近你的那一层
  • 运维人员常用网站列表
  • 【unitrix】 3.2 位取反运算(not.rs)