leetcode31 chat解法

解释以下你的思路
我的思路如下:

从右往左找到第一个非降序的数的位置 i,即满足 nums[i] < nums[i+1] 的最大下标 i。
如果不存在这样的 i,则数组已经是字典序最大的排列,直接翻转整个数组得到字典序最小的排列。
从右往左找到第一个大于 nums[i] 的数的位置 j,即满足 nums[j] > nums[i] 的最小下标 j。
交换 nums[i] 和 nums[j]。
将 i+1 及其右边的数按升序排列,因为这些数已经是降序的了。
例如,对于数组 nums = [1, 2, 5, 4, 3],按照上述步骤,可以得到下一个排列 [1, 3, 2, 4, 5]。

该算法的时间复杂度为 O(n),其中 n 是数组的长度。

#非技术春招备战日记##软件开发春招备战日记#
全部评论
具体运算过程能分享吗》菜鸡一枚
点赞 回复 分享
发布于 2023-03-28 16:54 四川

相关推荐

10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
11-22 16:49
已编辑
北京邮电大学 Java
美团 质效,测开 n*15.5
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务