zoukankan      html  css  js  c++  java
  • 280. Wiggle Sort

    最后更新

    二刷

    这个题做得真蠢。上来想的复杂了,想的是quick sort之类的,然后一个一个交换。

    实际上直接交换就行。。没啥特别的。

    回头看一刷也是同样的思考过程= =宿命论啊。。

    Time: O(n)
    Space: O(1)

    public class Solution {
        public void wiggleSort(int[] nums) {
            if (nums.length <= 1) return;
            
            for (int i = 1; i < nums.length; i++) {
                if (i % 2 == 0 && nums[i] > nums[i-1]) {
                    swap(i, i-1, nums);
                } else if (i % 2 != 0 && nums[i] < nums[i-1]) {
                    swap(i, i-1, nums);
                }
            }
            return;
        }
        
        public void swap(int l, int r, int[] nums) {
            int temp = nums[l];
            nums[l] = nums[r];
            nums[r] = temp;
        }
    }
    

    一刷

    这个题一开始蠢了,先SORT了一下,然后IN-PLACE做了半天。。

    发现直接greedy就可以。。。。。。

    public class Solution {
        public void wiggleSort(int[] nums) 
        {
            if(nums.length<=1) return;
           
            for(int i = 0; i < nums.length-1;i++)
            {
                if(i%2==0)
                {
                    if(nums[i] > nums[i+1])
                    {
                        swap(nums,i,i+1);
                    }
                }
                else
                {
                    if(nums[i] < nums[i+1])
                    {
                        swap(nums,i,i+1);
                    }
                }
            }
        }
        
        public void swap(int[] nums, int i, int j)
        {
            int temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
        }
    }
    
  • 相关阅读:
    蒟蒻的sb对拍方法
    LuoguP5176 公约数 题解
    天守阁的地板 题解
    Crash的数字表格 / JZPTAB 题解
    于神之怒加强版 简要题解
    最小公倍数之和 题解
    莫比乌斯反演的计算
    YY的GCD 题解
    acwing 309装饰围栏 大致思路 (预览)
    错排问题(预览)
  • 原文地址:https://www.cnblogs.com/reboot329/p/5935752.html
Copyright © 2011-2022 走看看