Problem
Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nums[2] <= nums[3]....
Example:
Input: nums = [3,5,2,1,6,4]
Output: One possible answer is [3,5,1,6,2,4]
class Solution { public void wiggleSort(int[] nums) { for (int i = 0; i < nums.length; i++) { if (i%2 == 1) { if (nums[i] < nums[i-1]) swap(nums, i, i-1); } else { if (i != 0 && nums[i] > nums[i-1]) swap(nums, i, i-1); } } } private void swap(int[] nums, int i, int j) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72703.html
摘要:每隔兩位交換一次,如,處理為。難點是會有相等的元素,而要求相鄰元素除了外,不能相等。那么就不能取排序后相鄰的元素交換,而要和后面的元素交換。例如犧牲空間的做法是,建立一個新數(shù)組,按照我們想要的規(guī)律放入元素,最后回原數(shù)組。 Wiggle Sort Problem Given an unsorted array nums, reorder it in-place such that num...
摘要:就能滿足題目要求。代碼先將數(shù)組排序?qū)?shù)組中一對一對交換交換法復(fù)雜度時間空間思路題目對搖擺排序的定義有兩部分如果是奇數(shù),如果是偶數(shù),所以我們只要遍歷一遍數(shù)組,把不符合的情況交換一下就行了。 Wiggle Sort Given an unsorted array nums, reorder it in-place such that nums[0] = nums[2] = nums[i ...
摘要:如果沒復(fù)雜度的要求,先也可以,再交叉放入數(shù)字也可以。交叉的時候注意是按照,降序的。 Wiggle Sort 題目鏈接:https://leetcode.com/problems... 這道題允許等號,相對簡單,有兩種方法:1. sort然后交換奇數(shù)位和它下一位的元素,2. 不滿足條件的時候直接交換 可以用遞推來說明一下這么做的正確性: 假設(shè)到第i位之前都滿足題目要求的關(guān)系 現(xiàn)在比較...
摘要:題目要求扭動序列是指數(shù)組中的相鄰兩個元素的差保證嚴(yán)格的正負(fù)交替,如數(shù)組中相鄰兩個元素的差為,滿足扭動序列的要求?,F(xiàn)在要求從一個數(shù)組中,找到長度最長的扭動子序列,并返回其長度。即前一個元素和當(dāng)前元素構(gòu)成下降序列,因此代碼如下 題目要求 A sequence of numbers is called a wiggle sequence if the differences between ...
摘要:最后,將動畫函數(shù)選為。的表現(xiàn)狀態(tài)就是起止過程比較緩慢,中間過渡迅速。褪色效果首先,添加一個褪色的過渡。通過百分比的方式指定動畫的進度相對于初始位置右移。同時希望動畫持續(xù)秒的時長,采用的動畫效果。 CSS不一定要寫得多么復(fù)雜才能實現(xiàn)特殊效果。如下就是三個超級簡單的過渡的例子,可能只是幾行代碼,但是添加到Web應(yīng)用程序中,卻會讓它增色不少。showImg(https://segmentfa...
閱讀 2913·2021-10-14 09:42
閱讀 1262·2021-09-24 10:32
閱讀 2980·2021-09-23 11:21
閱讀 2859·2021-08-27 13:10
閱讀 3346·2019-08-29 18:41
閱讀 2208·2019-08-29 15:16
閱讀 1218·2019-08-29 13:17
閱讀 903·2019-08-29 11:22