【LeetCode练习】[简单]88. 合并两个有序数组
88. 合并两个有序数组
题目来源
算法思想:数组
题目:
java代码
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int[] temp = new int[m];//用来暂时存放nums1中的数组
for (int i = 0; i < m; i++) {
temp[i] = nums1[i];
}
int i = 0;//指向temp
int j = 0;//指向nums2
int k = 0;//指向nums1
while (i < m && j < n) {
//比较temp和nums2中数值,将比较的小的放入最终答案nums1中
if (temp[i] <= nums2[j]) {
//如果temp中值的小,将其放入
nums1[k] = temp[i];
k++;//向后移
i++;
}
else {
//如果nums2中值的小,将其放入
nums1[k] = nums2[j];
k++;//向后移
j++;
}
}
while (i < m) {
//如果temp中有元素剩余,将顺序其加入nums1末尾
nums1[k] = temp[i];
k++;
i++;
}
while (j < n) {
//如果nums2中有元素剩余,将顺序其加入nums1末尾
nums1[k] = nums2[j];
k++;
j++;
}
}
}