물음표 살인마의 개발블로그

알고리즘 문제/Leetcode

280. Wiggle Sort

BEstyle 2022. 12. 14. 14:05

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

You may assume the input array always has a valid answer.

 

Example 1:

Input: nums = [3,5,2,1,6,4]
Output: [3,5,1,6,2,4]
Explanation: [1,6,2,5,3,4] is also accepted.

Example 2:

Input: nums = [6,6,5,6,3,8]
Output: [6,6,5,6,3,8]

 

Constraints:

  • 1 <= nums.length <= 5 * 104
  • 0 <= nums[i] <= 104
  • It is guaranteed that there will be an answer for the given input nums.

 

Follow up: Could you solve the problem in O(n) time complexity?

 


class Solution:
    def wiggleSort(self, nums: List[int]) -> None:
        
        nums.sort()
        hp=[]
        left=0
        right=len(nums)-1
        while left<right:
            hp.append(nums[left])
            hp.append(nums[right])
            left+=1
            right-=1
        if len(hp)!=len(nums):
            hp.append(nums[ int(len(nums)/2-0.5)  ])
        print(hp)
        for i in range(len(hp)):
            nums[i]=hp[i]
        
        
        """
        Do not return anything, modify nums in-place instead.
        """

'알고리즘 문제 > Leetcode' 카테고리의 다른 글

1757. Recyclable and Low Fat Products  (0) 2022.12.20
66. Plus One  (0) 2022.12.20
179. Largest Number  (0) 2022.12.13
134. Gas Station  (0) 2022.12.13
122. Best Time to Buy and Sell Stock II  (1) 2022.12.13