题目描述:
给定两个排序整数数组nums1和nums2,将nums2合并为一个排序数组nums1。
nums1和nums2中初始化的元素数量分别为m和n。
您可以假设nums1有足够的空间(大小大于或等于m + n)来容纳nums2中的其他元素。
Example 1:
Input:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3
Output: [1,2,2,3,5,6]
思路:
我的思路还是很简单:
数组拼接:splice,concat,push,都可以,判断去0的时候filter,unshift,都可以,
排序:sort,因为反正大小是够的所以m,n好像没有什么太大的用处,
然后我就报错了,尾部的0需要去掉,首部如果有负数就不能单纯的去掉0,所以
代码:
var merge = function(nums1, m, nums2, n) {
//如果要拼接的数组是空,则直接返回
if (n <= 0) return;
//length其实是确定,nums1开始拼接的位置
const length = nums1.length;
//开始拼接
for(let i = m, j = 0; i < length, j < n; i++, j++) {
nums1[i] = nums2[j];
}
//排序
nums1.sort((a, b) => a - b);
};
|