🗒️31. 下一个排列
2025-2-27
| 2025-2-27
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Feb 27, 2025 01:53 AM
整数数组的一个 排列  就是将其所有成员以序列或线性顺序排列。
  • 例如,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 的下一个排列。
必须 原地 修改,只允许使用额外常数空间。

模拟——找规律

要求
  • 尽可能将右边的数换到左边, 即尽可能将右边较小的“大数”与左边的“小数”交换
  • “大数”与“小数”交换后,需要将后面反转。将降序变为升序,数字变小

📎 参考

  • Important
  • LeetCode 热题 100
  • 2568. 最小无法得到的或值3315. 构造最小位运算数组 II
    Loading...