首页 > 其他 > 详细

324. Wiggle Sort II

时间:2016-07-08 13:41:29      阅读:110      评论:0      收藏:0      [点我收藏+]
    /*
     * 324. Wiggle Sort II
     * 2016-7-7 by Mingyang
     * 我想利用I的思路,设立一个list,sort以后从头尾分别加,但是遇到1122233就不行了
     * 因为这里是严格要求比周围的都大,不能等于
     * 那么下面的思路非常好,就是从中间取,一中一后,依次交叉往前取
     */
    public void wiggleSort2(int[] nums) {
        Arrays.sort(nums);
        int[] temp = new int[nums.length];
        int s = (nums.length + 1) >> 1, t = nums.length;
        for (int i = 0; i < nums.length; i++) {
            temp[i] = (i & 1) == 0 ? nums[--s] : nums[--t]; 
// s是最中间的那个,分别往前取 } for (int i = 0; i < nums.length; i++) nums[i] = temp[i]; }

 

324. Wiggle Sort II

原文:http://www.cnblogs.com/zmyvszk/p/5652860.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!