leetcode1053

Posted asenyang

tags:

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

 1 class Solution:
 2     def prevPermOpt1(self, A: List[int]) -> List[int]:
 3         n = len(A)
 4         for i in range(n-1,0,-1):
 5             if A[i-1] > A[i]:
 6                 cur = A[i-1]
 7                 B = A[i:]
 8                 maxB = 0
 9                 maxIndex = i
10                 for j in range(len(B)):
11                     if cur > B[j] and B[j] >= maxB:
12                         maxB = max(maxB,B[j])
13                         maxIndex = j
14                 A[i-1],A[i+maxIndex] = A[i+maxIndex],A[i-1]
15                 return A
16         return A

先寻找需要替换的项,从后向前寻找。如果前项>后项,那么这个“前项”就是要被替换的。

然后在这个项的右侧区域中寻找用于交换的位置。寻找比“前项”的值小的值中的最大的那个,同样的值选择位置靠后的。

关键的代码是10~13行。

以上是关于leetcode1053的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 1053. Previous Permutation With One Swap

[LeetCode] 1053. Previous Permutation With One Swap

错误1053怎么解决

错误 1053 服务没有及时响应启动或控制请求

MySQL启动1053错误怎么解决?

启动“Distributed Transaction Coordinator”服务 错误1053