题目地址(324. 摆动排序 II)
Posted 潜行前行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题目地址(324. 摆动排序 II)相关的知识,希望对你有一定的参考价值。
题目地址(324. 摆动排序 II)
https://leetcode.cn/problems/wiggle-sort-ii/
题目描述
给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。
你可以假设所有输入数组都可以得到满足题目要求的结果。
示例 1:
输入:nums = [1,5,1,1,6,4]
输出:[1,6,1,5,1,4]
解释:[1,4,1,5,1,6] 同样是符合题目要求的结果,可以被判题程序接受。
示例 2:
输入:nums = [1,3,2,2,3,1]
输出:[2,3,1,3,1,2]
提示:
1 <= nums.length <= 5 * 104
0 <= nums[i] <= 5000
题目数据保证,对于给定的输入 nums ,总能产生满足题目要求的结果
进阶:你能用 O(n) 时间复杂度和 / 或原地 O(1) 额外空间来实现吗?
关键点
- 数学,先大后小
代码
- 语言支持:Java
Java Code:
class Solution
public void wiggleSort(int[] nums)
int[] res = nums.clone();
Arrays.sort(res);
int index = nums.length;
//先插入大的
for(int i = 1;i<nums.length;i+=2)
nums[i] = res[--index];
//再插入小的
for(int i = 0;i<nums.length;i+=2)
nums[i] = res[--index];
复杂度分析
令 n 为数组长度。
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( n ) O(n) O(n)
以上是关于题目地址(324. 摆动排序 II)的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 324 摆动排序 II[排序 双指针] HERODING的LeetCode之路
2021-11-05:摆动排序 II。给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。你可以假设所有输入数组都可以