2022-4-14 面试高频题

给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。

你可以假设所有输入数组都可以得到满足题目要求的结果。

 1 class Solution {
 2     public void wiggleSort(int[] nums) {
 3         Arrays.sort(nums);
 4         int[] arr=nums.clone();
 5         int r=arr.length-1;
 6         for (int i=1;i<arr.length;i+=2){
 7             nums[i]=arr[r];
 8             r--;
 9         }
10         for (int i=0;i<arr.length;i+=2){
11             nums[i]=arr[r];
12             r--;
13         }
14         return;
15     }
16 }

思路:摆动排序特征是奇数位置的较大,因次排序之后按照逆序先把较大数排完,再逆序排列其他位置的数,可以保证后排的数字永远比先排的小。

posted on 2022-04-14 12:32  阿ming  阅读(13)  评论(0编辑  收藏  举报

导航