📅  最后修改于: 2023-12-03 15:28:32.486000             🧑  作者: Mango
给定一个长度为n的整数数组nums,你的任务是将它们重新排列以满足以下条件:
请返回重新排列后的数组。
题目要求重新排列后, 数字元素最多. 我们可以利用贪心算法, 对数组中元素进行排序.
我们按照从大到小的顺序, 对数组中的元素进行排序, 并将排序后的元素放在原来的位置上. 这样做的好处是:
算法流程如下:
class Solution():
def rearrangeArray(self, nums: List[int]) -> List[int]:
nums.sort(reverse=True)
res = []
i, j = 0, len(nums)-1
while i <= j:
res.append(nums[i])
i += 1
if i <= j:
res.append(nums[j])
j -= 1
return res
时间复杂度为O(nlogn), 因为需要对数组进行排序.