原題
給你一個(gè)沒(méi)有排序的數(shù)組优质,請(qǐng)將原數(shù)組就地重新排列滿(mǎn)足如下性質(zhì)
nums[0] <= nums[1] >= nums[2] <= nums[3]....
樣例
給出數(shù)組為 nums = [3, 5, 2, 1, 6, 4] 一種輸出方案為[1, 6, 2, 5, 3, 4]
解題思路
- 根據(jù)題意攀隔,搖擺排序的定義有兩部分:
- 如果i是奇數(shù),nums[i] >= nums[i - 1]
- 如果i是偶數(shù),nums[i] <= nums[i - 1]
- 所以遍歷一遍婆翔,將錯(cuò)誤的進(jìn)行調(diào)整就可以了
完整代碼
class Solution(object):
"""
@param {int[]} nums a list of integer
@return nothing, modify nums in-place instead
"""
def wiggleSort(self, nums):
# Write your code here
for i in xrange(1, len(nums)):
if i % 2 == 1 and nums[i] < nums[i - 1] or \
i % 2 == 0 and nums[i] > nums[i - 1]:
nums[i], nums[i - 1] = nums[i- 1], nums[i]