LeetCode 280 [Wiggle Sort]

原題

給你一個沒有排序的數組,請將原數組就地重新排列滿足如下性質
nums[0] <= nums[1] >= nums[2] <= nums[3]....

樣例
給出數組為 nums = [3, 5, 2, 1, 6, 4] 一種輸出方案為[1, 6, 2, 5, 3, 4]

解題思路

  • 根據題意,搖擺排序的定義有兩部分:
  • 如果i是奇數,nums[i] >= nums[i - 1]
  • 如果i是偶數,nums[i] <= nums[i - 1]
  • 所以遍歷一遍,將錯誤的進行調整就可以了

完整代碼

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]
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,769評論 0 33
  • Given an unsorted array nums, reorder it in-place such th...
    六尺帳篷閱讀 993評論 0 1
  • 轉載自:https://egoistk.github.io/2016/09/10/Java%E6%8E%92%E5...
    chad_it閱讀 1,005評論 0 18
  • 開始刷leetcode,簡單題就懶得寫出來了,把有點難度或者思路有趣的題記錄一下。寫業務寫久了,整個人都變蠢了,需...
    bakaqian閱讀 1,475評論 2 1
  • 平淡的生活,一只寵物將填滿你的日常。 國定假期的最后一天,上海還處于安安靜靜的氛圍,商店基本上大門緊鎖,街上的行人...
    PaulineTPT閱讀 254評論 0 0