【Leetcode】324. Wiggle Sort II

Given an unsorted array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3]....

class Solution(object):

    def wiggleSort(self, nums):

        """

        :type nums: List[int]

        :rtype: void Do not return anything, modify nums in-place instead.

        """

        nums.sort()

        half =  len(nums[::2])

        nums[::2], nums[1::2] = nums[:half][::-1], nums[half:][::-1]

1 总的思路是将array sort,将前半部分放在even的位置,后半部分放在odd的位置

2 得到array一半的长度,可以用这个code:half = len(num[::2])

3 这里需要reverse一下两个部分,因为reverse以后可以解决SMML这个case,得到MLSM,如果不reverse的话,就会得到SMML,则不满足题目要求

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容