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

LeetCode热题100-下一个排列

整数数组的一个排列就是将其所有成员以序列或线性顺序排列。

  • 例如,arr = [1,2,3],以下这些都可以视作arr的排列:[1,2,3][1,3,2][3,1,2][2,3,1]

整数数组的下一个排列是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的下一个排列就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。

  • 例如,arr = [1,2,3]的下一个排列是[1,3,2]
  • 类似地,arr = [2,3,1]的下一个排列是[3,1,2]
  • arr = [3,2,1]的下一个排列是[1,2,3],因为[3,2,1]不存在一个字典序更大的排列。

给你一个整数数组nums,找出nums的下一个排列。

必须原地修改,只允许使用额外常数空间。

首先理解下题:什么是下一个排列?

就是在所有比当前大的排列里,最小的那一个。比如:

  • 当前是123
  • 比它大的有:132、213、231…
  • 最小的那个就是 132→ 所以123的下一个排列是132

明白这一点后就需要按照以下几步找:

核心思路(固定 4 步)

  1. 从后往前找:第一个比后面小的数,记位置i
  2. 再从后往前找:第一个比 nums [i] 大的数,记位置j
  3. 交换 nums [i] 和 nums [j]
  4. 把 i 后面的数字反转
class Solution: def nextPermutation(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ i = len(nums) - 2 while i >= 0 and nums[i] >= nums[i + 1]: i -= 1 if i >= 0: j = len(nums) - 1 while j >= 0 and nums[j] <= nums[i]: j -= 1 nums[i], nums[j] = nums[j], nums[i] nums[i+1:] = nums[i+1:][::-1]
http://www.jsqmd.com/news/663166/

相关文章:

  • ESP32开发进阶:驱动LCD:ST7789
  • 2026年降AI率工具第一梯队排行榜,嘎嘎降AI凭什么稳居第一 - 我要发一区
  • mysql如何通过调整Undo Log优化并发性能_优化innodb_max_undo_log_size
  • 如何快速掌握YimMenu:GTA V开源模组菜单的完整使用指南
  • 别再只当播放器了!手把手教你用STM32CubeMX把USB声卡改成录音麦克风
  • 2026年4月新消息:湖南输送机选型终极指南与五大服务商深度测评 - 2026年企业推荐榜
  • CAN通信双FIFO过滤秘籍:用STM32F407实现奇偶ID分流的3种配置方案
  • 2024年图像描述模型实战指南:从BLIP到mPLUG,如何选择最适合你的AI配图助手
  • 需求预测准确率上不去?可能是你的误差指标用错了:MAE、MSE、MAPE、WMAPE保姆级避坑指南
  • Java实战:如何用Markdown标题分割优化RAG系统的中文文档处理(附完整代码)
  • 探索四足机器人运动控制技术:OpenDog V3开源项目实现指南
  • FPGA调试效率倍增器——基于JTAG to AXI Master的自动化脚本实践
  • 语音识别(ASR)语音合成(TTS)
  • 手把手教你用STM32CubeMX配置MAX30102心率血氧模块(附完整代码与接线图)
  • Matlab里inv函数算逆矩阵准不准?一个500阶随机矩阵的实测与避坑指南
  • 2026年4月洞察:模具温控系统智能化升级,五大服务商助力精密制造 - 2026年企业推荐榜
  • C++20中views的学习与实战练习
  • 防止SQL注入的运维实践_实时清理数据库缓存与历史记录
  • STM32CubeMX零代码配置PWM驱动MG90S舵机(附避坑指南)
  • HTML函数开发用防泼溅键盘有必要吗_耐用性硬件选择建议【指南】
  • 2026年最新降AI率工具排行榜,看完不再纠结怎么选 - 我要发一区
  • SurveyKing企业级问卷系统部署挑战与高可用架构解决方案
  • Rockchip RK3588音频子系统DTS配置实战:以ES8388外接声卡为例
  • x86服务器安装GTX 1070 Ti + CUDA全流程指南
  • 2026年降AI率工具排行:毕业生亲测这5款值得收藏 - 我要发一区
  • 如何实现SQL视图的灰度发布_版本兼容与双重定义方案
  • ORB-SLAM2稠密建图实战:从编译到实时彩色点云生成与保存
  • 从原理到选型:热敏电阻、RTD与热电偶的工业测温实战指南
  • Spring Boot 自动配置机制剖析
  • 3分钟掌握RPG Maker解密技巧:解锁游戏资源宝藏