lintcode練習 508 擺動排序

2021-08-22 13:28:20 字數 769 閱讀 6770

給你乙個沒有排序的陣列,請將原陣列就地重新排列滿足如下性質

nums[0] <= nums[1] >= nums[2] <= nums[3]....
請就地排序陣列,也就是不需要額外陣列

您在真實的面試中是否遇到過這個題?  是

給出陣列為 nums =[3, 5, 2, 1, 6, 4]一種輸出方案為[1, 6, 2, 5, 3, 4]

實現**:

class solution:

"""@param: nums: a list of integers

@return: nothing

"""def wigglesort(self, nums):

# write your code here

nums.sort()

for i in range(len(nums) - 1):

if i % 2 != 0:

nums.insert(i, nums.pop())

#mothed 2 感覺答案是錯誤的

# i = 1

# end = len(nums) -2 if len(nums) % 2==0 else len(nums) -1

# while i < end:

#     nums[i], nums[i+1] = nums[i+1], nums[i]

#     i += 2

lintcode練習 490 棧集

假如你有一堆的盤子。如果你堆得太高的話,就可能會垮掉。所以,在真實的生活中,如果盤子疊到一定高度,你會重新開始堆新的一堆盤子。實現這樣的乙個資料結構,我們稱之為棧集,來模擬這個過程。這個棧集包含若干個棧 可以理解為若干堆的盤子 如果乙個棧滿了,就需要新建乙個棧來裝新加入的項。你需要實現棧集的兩個方法...

lintcode練習 156 合併區間

給出若干閉合區間,合併所有重疊的部分。您在真實的面試中是否遇到過這個題?是 given intervals merged intervals 1,3 1,6 2,6 8,10 8,10 15,18 15,18 o n log n 的時間和 o 1 的額外空間。實現 思路 先對列表按照start進行排...

lintcode練習 148 顏色分類

給定乙個包含紅,白,藍且長度為 n 的陣列,將陣列元素進行分類使相同顏色的元素相鄰,並按照紅 白 藍的順序進行排序。我們可以使用整數 0,1 和 2 分別代表紅,白,藍。不能使用 庫中的排序函式來解決這個問題。排序需要在原陣列中進行。您在真實的面試中是否遇到過這個題?是 給你陣列 1,0,1,2 需...