国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[Leetcode] Wiggle Sort 搖擺排序

LancerComet / 876人閱讀

摘要:就能滿足題目要求。代碼先將數(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[1] >= nums[2] <= nums[3]....

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

排序法 復(fù)雜度

時(shí)間 O(NlogN) 空間 O(1)

思路

根據(jù)題目的定義,搖擺排序的方法將會(huì)很多種。我們可以先將數(shù)組排序,這時(shí)候從第3個(gè)元素開始,將第3個(gè)元素和第2個(gè)元素交換。然后再從第5個(gè)元素開始,將第5個(gè)元素和第4個(gè)元素交換,以此類推。就能滿足題目要求。

代碼
public class Solution {
    public void wiggleSort(int[] nums) {
        // 先將數(shù)組排序
        Arrays.sort(nums);
        // 將數(shù)組中一對(duì)一對(duì)交換
        for(int i = 2; i < nums.length; i+=2){
            int tmp = nums[i-1];
            nums[i-1] = nums[i];
            nums[i] = tmp;
        }
    }
}
交換法 復(fù)雜度

時(shí)間 O(N) 空間 O(1)

思路

題目對(duì)搖擺排序的定義有兩部分:

如果i是奇數(shù),nums[i] >= nums[i - 1]

如果i是偶數(shù),nums[i] <= nums[i - 1]

所以我們只要遍歷一遍數(shù)組,把不符合的情況交換一下就行了。具體來說,如果nums[i] > nums[i - 1], 則交換以后肯定有nums[i] <= nums[i - 1]。

代碼
public class Solution {
    public void wiggleSort(int[] nums) {
        for(int i = 1; i < nums.length; i++){
            // 需要交換的情況:奇數(shù)時(shí)nums[i] < nums[i - 1]或偶數(shù)時(shí)nums[i] > nums[i - 1]
            if((i % 2 == 1 && nums[i] < nums[i-1]) || (i % 2 == 0 && nums[i] > nums[i-1])){
                int tmp = nums[i-1];
                nums[i-1] = nums[i];
                nums[i] = tmp;
            }
        }
    }
}

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/64572.html

相關(guān)文章

  • [LintCode/LeetCode] Wiggle Sort I & Wiggle Sor

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

    linkFly 評(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
  • Wiggle Sort & II

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

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

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

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

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

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

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

0條評(píng)論

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