思路
將給定陣列排序並逆序;
拆分處理後的陣列,得到兩個陣列;
將乙個陣列插入至另乙個陣列。
[4,6,5,5]
1. 排序、逆序 ==> [6,5,5,4]
2. 拆分 ==> [6,5] & [5,4]
3. 合併 ==> [5, ,4, ]
[ ,6, ,5]
4. result ==> [5,6,4,5]
def
resolution
(nums)
: length =
len(nums)
if(length ==
0or length ==1)
:return nums
nums.sort(reverse=
true
) nums_1, nums_2 =
,# round函式(四捨五入):將4.5 => 4, 將4.51 => 5
for i in
range
(round
((length/2)
-0.1))
:0))
nums_2 = nums.copy(
) count =
1while
(nums_1)
: nums_2.insert(count, nums_1.pop(0)
) count +=
2 nums = nums_2
return nums
if __name__ ==
"__main__"
: nums =[1
,1,2
,2,2
,2,1
,1,1
]# ==> [1, 2, 1, 2, 1, 2, 1, 2, 1]
# nums = [4,5,5,6] ==> [5, 6, 4, 5]
# nums = [2,1] ==> [1,2]
res = resolution(nums)
print
(res)
function
sort_fun
(prev, curr)
else
if(prev < curr)
else
}function
resolution
(nums)
nums.
sort
(sort_fun)
; length /=2;
length = length.
tofixed(0
);if(length *
2!= nums.length)
let nums_1 = nums.
slice(0
, length)
;let nums_2 = nums.
slice
(length, nums.length)
;let res =
, count =0;
while
(true)if
(count < nums_1.length)
if(count > nums_1.length && count > nums_2.length)
count +=1;
}}let obj =[1
,2,1
,2,2
,2,1
,1,1
];// ==> (9) [1, 2, 1, 2, 1, 2, 1, 2, 1]
// obj = [2,1] ==> (2) [1, 2]
// obj = [4,5,5,6] ==> (4) [5, 6, 4, 5]
// obj = [1,5,1,1,6,4] ==> (6) [1, 6, 1, 5, 1, 4]
let res =
resolution
(obj)
;console.
info
(res)
;
LeetCode 324 擺動排序 II
給定乙個無序的陣列nums,將它重新排列成nums 0 nums 1 nums 2 nums 3 的順序。示例 1 輸入 nums 1,5,1,1,6,4 輸出 乙個可能的答案是 1,4,1,5,1,6 示例 2 輸入 nums 1,3,2,2,3,1 輸出 乙個可能的答案是 2,3,1,3,1,2...
leetcode 324 擺動排序 II
給定乙個無序的陣列 nums,將它重新排列成 nums 0 nums 1 nums 2 nums 3 的順序。示例 1 輸入 nums 1,5,1,1,6,4 輸出 乙個可能的答案是 1,4,1,5,1,6 示例 2 輸入 nums 1,3,2,2,3,1 輸出 乙個可能的答案是 2,3,1,3,1...
LeetCode 324 擺動排序 II
給定乙個無序的陣列 nums,將它重新排列成 nums 0 nums 1 nums 2 nums 3 的順序。示例 1 輸入 nums 1,5,1,1,6,4 輸出 乙個可能的答案是 1,4,1,5,1,6 示例 2 輸入 nums 1,3,2,2,3,1 輸出 乙個可能的答案是 2,3,1,3,1...