您的位置:首页 > 编程语言 > Python开发

leetcode之Wiggle Sort II

2016-01-01 20:14 621 查看
这道新题目前还没有评分。。。采用的方法是排序之后将后半部分插入到前半部分。需要注意的是有可能前后分界的部分相等,导致了只能从中间开始插入到前面,以及4个数的时候,中间相等导致的插入后等于没插的效果(相等的2个数还是排列在一起)。代码如下:
class Solution(object):
def wiggleSort(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
nums.sort()
if len(nums) % 2 != 0:
for i in range(len(nums) / 2):
a = nums[i + len(nums) / 2 + 1]
del nums[i + len(nums) / 2 + 1]
nums.insert(2 * i + 1, a)
else:
if len(nums) == 4:
if nums[1] == nums[2]:
for i in range(2):
a = nums.pop()
nums.insert(0, a)
else:
for i in range(len(nums) / 2):
a = nums[i + len(nums) / 2]
del nums[i + len(nums) / 2]
nums.insert(2 * i + 1, a)

else:
for i in range(len(nums) / 2):
a = nums[i + len(nums) / 2]
del nums[i + len(nums) / 2]
nums.insert(2 * i + 1, a)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息