Do anyone know where is the error?
This code works fine in both odd and even length input,
however it got a limit time exceeded error when I submit it.
class Solution(object): def wiggleSort(self, nums): """ :type nums: List[int] :rtype: void Do not return anything, modify nums in-place instead. """ n = len(nums) # Find a median and put elements, which are smaller than median, in the first half of array. # Adapted from selection algorithm. array = nums[:] #array.sort() k = n/2 for i in range(0, k+1): minIdx = i minValue = array[i] for j in range(i+1, n): if array[j] < minValue: minIdx = j minValue = array[j] array[i], array[minIdx] = array[minIdx], array[i] mid = array[k] # Put elements, which are equal to median, after the first half of array. for i in range(k+1, n): if array[i] == mid: k = k+1 array[k], array[i] = array[i], array[k] # Fill elements into nums from array # even idx (small): fetch from the first half of array (smaller elements) # odd idx (big): fetch from the second half of array (bigger elements) for i in range(0, n): if i%2: nums[i] = array[n-i/2-1] else: nums[i] = array[(n-1)/2-i/2]