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 是数组的长度。
#非技术春招备战日记##软件开发春招备战日记#
我的思路如下:
从右往左找到第一个非降序的数的位置 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 是数组的长度。
#非技术春招备战日记##软件开发春招备战日记#
全部评论
具体运算过程能分享吗》菜鸡一枚
相关推荐
点赞 评论 收藏
分享
10-23 11:17
百度_智能客服研发组_Java后端开发(实习员工) 点赞 评论 收藏
分享
码农烧烤启动:写熟悉源码不怕被问穿吗佬
点赞 评论 收藏
分享
点赞 评论 收藏
分享