觀前提醒:
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
The number of elements initialized in nums1 and nums2 are m and n respectively.
You may assume that nums1 has enough space (size that is equal to m + n
) to hold additional elements from nums2.
Example:
Input:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3
Output: [1,2,2,3,5,6]
Constraints:
/**
* @param {number[]} nums1
* @param {number} m
* @param {number[]} nums2
* @param {number} n
* @return {void} Do not return anything, modify nums1 in-place instead.
*/
var merge = function (nums1, m, nums2, n) {
//將nums2裡面的值,賦值到 nums1。
var indexOfNum2 = 0;
for (var i = m; i < m + n; i++) {
nums1[i] = nums2[indexOfNum2];
indexOfNum2++;
}
// 將新增後的 nums1,利用 bubble sort 來重新整理該陣列。
for (var k = j + 1; k <= nums1.length - 1; k++) {
if (nums1[j] > nums1[k]) {
let temp = nums1[j];
nums1[j] = nums1[k];
nums1[k] = temp;
}
}
}
};
其實一開始,我以為這題超簡單der,本來就是想把兩個陣列 concat 在一起,然後直接sort 掉就結束這一回合。但後來仔細看到題目下面這段:
// @return {void} Do not return anything, modify nums1 in-place instead.
馬上就發現到案情不單純,所以還是乖乖從陣列的原始處理模式來思考。後來有了想法後就實作看看,突然發現自己忘了第二段的 bubble sort 應該怎麼寫比較好。好在參考了下恩師-- PJCHENder 的文章,才把整段程式給收了尾巴
參考資料就在下方,路過幫分享個~老師的網站真的是大寶庫啊~
[演算法] 氣泡排序法(Bubble Sort):利用兩兩元素交換位置達到排序
謝謝大家的收看,LeetCode 小學堂我們下次見~