题目地址(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)
创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于题目地址(324. 摆动排序 II)的主要内容,如果未能解决你的问题,请参考以下文章

[Leetcode] 第324题 摆动排序II

[leetcode 324] 摆动排序 II 思维+排序

[leetcode 324] 摆动排序 II 思维+排序

LeetCode 324 摆动排序 II[排序 双指针] HERODING的LeetCode之路

摆动排序 II

2021-11-05:摆动排序 II。给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。你可以假设所有输入数组都可以