成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[LintCode/LeetCode] Wiggle Sort I & Wiggle Sor

linkFly / 2539人閱讀

摘要:每隔兩位交換一次,如,處理為。難點(diǎn)是會(huì)有相等的元素,而要求相鄰元素除了外,不能相等。那么就不能取排序后相鄰的元素交換,而要和后面的元素交換。例如犧牲空間的做法是,建立一個(gè)新數(shù)組,按照我們想要的規(guī)律放入元素,最后回原數(shù)組。

Wiggle Sort Problem

Given an unsorted array nums, reorder it in-place such that

nums[0] <= nums[1] >= nums[2] <= nums[3]....

Example

Given nums = [3, 5, 2, 1, 6, 4], one possible answer is [1, 6, 2, 5, 3, 4].

Note

每隔兩位交換一次,如【1 2 3 4 5 6】,處理為【1 3 2 5 4 6】。

Solution
public class Solution {
    public void wiggleSort(int[] nums) {
        Arrays.sort(nums);
        for (int i = 2; i < nums.length; i+=2) {
            int temp = nums[i];
            nums[i] = nums[i-1];
            nums[i-1] = temp;
        }
        return;
    }
}
Wiggle Sort II Problem

Given an unsorted array nums, reorder it such that

nums[0] < nums[1] > nums[2] < nums[3]....

Example

Given nums = [1, 5, 1, 1, 6, 4], one possible answer is [1, 4, 1, 5, 1, 6].

Given nums = [1, 3, 2, 2, 3, 1], one possible answer is [2, 3, 1, 3, 1, 2].

Note

難點(diǎn)是會(huì)有相等的元素,而要求相鄰元素除了wiggle外,不能相等。
那么就不能取排序后相鄰的元素交換,而要和后面的元素交換。例如:

//1 2 3 4 5 6
//3 6 2 5 1 4

犧牲空間的做法是,建立一個(gè)新數(shù)組temp,按照我們想要的規(guī)律放入元素,最后copy回原數(shù)組nums。
簡(jiǎn)單的思路就是,假設(shè)nums里有n個(gè)數(shù),我們循環(huán)n/2次或者n/2+1次,每次循環(huán)里為temp添加兩個(gè)數(shù)(n為奇數(shù)時(shí),最后一次循環(huán)只添加一個(gè)數(shù))。最后用System.arraycopy(sourceArray, 0, targetArray, 0, targetArray.length).

Solution
耗時(shí)浪費(fèi)空間法
public class Solution {
    public void wiggleSort(int[] nums) {
        Arrays.sort(nums);
        int n = nums.length, mid = (n-1)/2, index = 0;
        int[] temp = new int[n];
        for (int i = 0; i <= mid; i++) {
            temp[index] = nums[mid-i];
            if (index+1 < n) {
                temp[index+1] = nums[n-1-i];
            }
            index += 2;
        }
        System.arraycopy(temp, 0, nums, 0, n);
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/66188.html

相關(guān)文章

  • Wiggle Sort &amp; II

    摘要:如果沒(méi)復(fù)雜度的要求,先也可以,再交叉放入數(shù)字也可以。交叉的時(shí)候注意是按照,降序的。 Wiggle Sort 題目鏈接:https://leetcode.com/problems... 這道題允許等號(hào),相對(duì)簡(jiǎn)單,有兩種方法:1. sort然后交換奇數(shù)位和它下一位的元素,2. 不滿足條件的時(shí)候直接交換 可以用遞推來(lái)說(shuō)明一下這么做的正確性: 假設(shè)到第i位之前都滿足題目要求的關(guān)系 現(xiàn)在比較...

    Moxmi 評(píng)論0 收藏0
  • [Leetcode] Wiggle Sort 搖擺排序

    摘要:就能滿足題目要求。代碼先將數(shù)組排序?qū)?shù)組中一對(duì)一對(duì)交換交換法復(fù)雜度時(shí)間空間思路題目對(duì)搖擺排序的定義有兩部分如果是奇數(shù),如果是偶數(shù),所以我們只要遍歷一遍數(shù)組,把不符合的情況交換一下就行了。 Wiggle Sort Given an unsorted array nums, reorder it in-place such that nums[0] = nums[2] = nums[i ...

    LancerComet 評(píng)論0 收藏0
  • [LeetCode] 280. Wiggle Sort

    Problem Given an unsorted array nums, reorder it in-place such that nums[0] = nums[2] nums[i-1]) swap(nums, i, i-1); } } } private void swap(int[] nums, int i, int j) { ...

    archieyang 評(píng)論0 收藏0
  • leetcode376. Wiggle Subsequence

    摘要:題目要求扭動(dòng)序列是指數(shù)組中的相鄰兩個(gè)元素的差保證嚴(yán)格的正負(fù)交替,如數(shù)組中相鄰兩個(gè)元素的差為,滿足扭動(dòng)序列的要求?,F(xiàn)在要求從一個(gè)數(shù)組中,找到長(zhǎng)度最長(zhǎng)的扭動(dòng)子序列,并返回其長(zhǎng)度。即前一個(gè)元素和當(dāng)前元素構(gòu)成下降序列,因此代碼如下 題目要求 A sequence of numbers is called a wiggle sequence if the differences between ...

    CoffeX 評(píng)論0 收藏0
  • 送給CSS初學(xué)者的懸停過(guò)渡動(dòng)畫(huà)三部曲

    摘要:最后,將動(dòng)畫(huà)函數(shù)選為。的表現(xiàn)狀態(tài)就是起止過(guò)程比較緩慢,中間過(guò)渡迅速。褪色效果首先,添加一個(gè)褪色的過(guò)渡。通過(guò)百分比的方式指定動(dòng)畫(huà)的進(jìn)度相對(duì)于初始位置右移。同時(shí)希望動(dòng)畫(huà)持續(xù)秒的時(shí)長(zhǎng),采用的動(dòng)畫(huà)效果。 CSS不一定要寫(xiě)得多么復(fù)雜才能實(shí)現(xiàn)特殊效果。如下就是三個(gè)超級(jí)簡(jiǎn)單的過(guò)渡的例子,可能只是幾行代碼,但是添加到Web應(yīng)用程序中,卻會(huì)讓它增色不少。showImg(https://segmentfa...

    jsliang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<