給你乙個沒有排序的陣列,請將原陣列就地重新排列滿足如下性質
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 需...