Leetcode 3644. Maximum K to Sort a Permutation

  • [Leetcode 3644. Maximum K to Sort a Permutation](#Leetcode 3644. Maximum K to Sort a Permutation)
    • [1. 解题思路](#1. 解题思路)
    • [2. 代码实现](#2. 代码实现)

1. 解题思路

这一题核心在于说想明白要如何进行排序,问题的最终目标是将整个数组变得有序,因此原始数组当中所有位置与最终位置不同的数都需要被重新排序,也就是说这其中的任意两个数的位和的结果均至少要大于等于 k k k,否则就不存在一种交换方式能够交换这两个数。

因此,我们将所有位置不对的数计算一下位和的结果,这个值就会是 k k k能够取到的最大值。然后我们就只需要证明这个 k k k确实可以将所有的数置换为有序数组。这其实也很直接,我们将 k k k单取出来,然后与每一个数进行一下交换,将其换到对应的位置即可。

综上,证明完毕,我们将所有的位置不对的数计算一下位和的结果,就是最终答案 k k k。

2. 代码实现

给出python代码实现如下:

python 复制代码
class Solution:
    def sortPermutation(self, nums: List[int]) -> int:
        snums = sorted(nums)
        ans = -1
        for x, y in zip(nums, snums):
            if x == y:
                continue
            if ans == -1:
                ans = x
            else:
                ans = ans & x
        return ans if ans != -1 else 0

提交代码评测得到:耗时44ms,占用内存29.60MB。

相关推荐
Espresso Macchiato11 天前
Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation
bfs·广度优先遍历·leetcode medium·leetcode 3629·leetcode周赛460·质数求解·质因素分解
Espresso Macchiato2 个月前
Leetcode 3572. Maximize Y‑Sum by Picking a Triplet of Distinct X‑Values
leetcode medium·leetcode 3572
Espresso Macchiato2 个月前
Leetcode 3568. Minimum Moves to Clean the Classroom
剪枝·广度优先遍历·leetcode medium·堆排·leetcode周赛452·leetcode 3568
Espresso Macchiato2 个月前
Leetcode 3567. Minimum Absolute Difference in Sliding Submatrix
leetcode·leetcode medium·leetcode周赛452·leetcode 3567
Espresso Macchiato2 个月前
Leetcode 3566. Partition Array into Two Equal Product Subsets
动态规划·leetcode medium·leetcode 3566·leetcode周赛452
Espresso Macchiato2 个月前
Leetcode 3557. Find Maximum Number of Non Intersecting Substrings
动态规划·leetcode medium·leetcode 3557·leetcode双周赛157
Espresso Macchiato3 个月前
Leetcode 3552. Grid Teleportation Traversal
广度优先遍历·leetcode medium·leetcode周赛450·leetcode 3552·堆排
Espresso Macchiato3 个月前
Leetcode 3551. Minimum Swaps to Sort by Digit Sum
leetcode·排序·leetcode medium·leetcode 3551·leetcode周赛450
Espresso Macchiato3 个月前
Leetcode 3543. Maximum Weighted K-Edge Path
leetcode·leetcode medium·图遍历·leetcode 3543·leetcode双周赛156