[LeetCode] 1053. Previous Permutation With One Swap

Posted CNoodle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 1053. Previous Permutation With One Swap相关的知识,希望对你有一定的参考价值。

Given an array of positive integers arr (not necessarily distinct), return the lexicographically largest permutation that is smaller than arr, that can be made with exactly one swap (A swap exchanges the positions of two numbers arr[i] and arr[j]). If it cannot be done, then return the same array.

Example 1:

Input: arr = [3,2,1]
Output: [3,1,2]
Explanation: Swapping 2 and 1.

Example 2:

Input: arr = [1,1,5]
Output: [1,1,5]
Explanation: This is already the smallest permutation.

Example 3:

Input: arr = [1,9,4,6,7]
Output: [1,7,4,6,9]
Explanation: Swapping 9 and 7.

Example 4:

Input: arr = [3,1,1,3]
Output: [1,3,1,3]
Explanation: Swapping 1 and 3.

Constraints:

  • 1 <= arr.length <= 104
  • 1 <= arr[i] <= 104

交换一次的先前排列。

给你一个正整数的数组 A(其中的元素不一定完全不同),请你返回可在 一次交换(交换两数字 A[i] 和 A[j] 的位置)后得到的、按字典序排列小于 A 的最大可能排列。

如果无法这么操作,就请返回原数组。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/previous-permutation-with-one-swap
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

这道题有两种思路,一种会利用到treemap,一种是线性解法。

 

LeetCode 题目总结

以上是关于[LeetCode] 1053. Previous Permutation With One Swap的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] 1053. Previous Permutation With One Swap

leetcode1053

数组旋转 Leetcode#189

SQLSERVER2012 运行报1053错误的解决方法

错误1053怎么解决

MySQL启动1053错误怎么解决?