js给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。
时间: 2024-10-15 17:19:57 浏览: 49
这是一个常见的编程问题,通常被称为“归并区间”或“合并排序数组”。在JavaScript中解决这个问题,可以采用双指针法。首先,创建两个指针 i 和 j 分别指向 nums1 和 nums2 的开始,然后按照以下步骤操作:
1. 比较当前 nums1[i] 和 nums2[j] 的值。
- 如果 nums1[i] 小于或等于 nums2[j],将 nums1[i] 加入结果数组,并将 i 自增 1;
- 否则,将 nums2[j] 加入结果数组,并将 j 自增 1。
2. 当其中一个数组遍历完(即 i 或 j 越界),将另一个数组剩余的部分直接添加到结果数组中。
3. 最后返回合并后按非递减顺序排列的结果数组。
以下是具体的 JavaScript 代码实现:
```javascript
function mergeSortedArrays(nums1, m, nums2, n) {
let result = [];
let i = 0, j = 0;
while (i < m && j < n) {
if (nums1[i] <= nums2[j]) {
result.push(nums1[i]);
i++;
} else {
result.push(nums2[j]);
j++;
}
}
// 将未加入结果的 nums1 元素加到结果数组
while (i < m) {
result.push(nums1[i]);
i++;
}
// 将未加入结果的 nums2 元素加到结果数组
while (j < n) {
result.push(nums2[j]);
j++;
}
return result;
}
```
阅读全文