欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Python | Leetcode Python题解之第324题摆动排序II

Python | Leetcode Python题解之第324题摆动排序II

2024/10/24 18:19:12 来源:https://blog.csdn.net/Mopes__/article/details/141075099  浏览:    关键词:Python | Leetcode Python题解之第324题摆动排序II

题目:

题解:

def quickSelect(a: List[int], k: int) -> int:seed(datetime.datetime.now())shuffle(a)l, r = 0, len(a) - 1while l < r:pivot = a[l]i, j = l, r + 1while True:i += 1while i < r and a[i] < pivot:i += 1j -= 1while j > l and a[j] > pivot:j -= 1if i >= j:breaka[i], a[j] = a[j], a[i]a[l], a[j] = a[j], pivotif j == k:breakif j < k:l = j + 1else:r = j - 1return a[k]class Solution:def wiggleSort(self, nums: List[int]) -> None:n = len(nums)x = (n + 1) // 2target = quickSelect(nums, x - 1)transAddress = lambda i: (2 * n - 2 * i - 1) % (n | 1)k, i, j = 0, 0, n - 1while k <= j:tk = transAddress(k)if nums[tk] > target:while j > k and nums[transAddress(j)] > target:j -= 1tj = transAddress(j)nums[tk], nums[tj] = nums[tj], nums[tk]j -= 1if nums[tk] < target:ti = transAddress(i)nums[tk], nums[ti] = nums[ti], nums[tk]i += 1k += 1

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com