solution1 : sort函数
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
for (int i = 0; i != n; ++i) {
nums1[m + i] = nums2[i];
}
Arrays.sort(nums1);
}
}
solution2 : 双指针
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int i = m-1, j = n-1;
int tail = m+n-1;
int current;
while(i>=0 || j>=0){
if(i==-1){
current = nums2[j];
j--;
}else if(j==-1){
current = nums1[i];
i--;
}else if (nums1[i]>nums2[j]){
current = nums1[i];
i--;
}else{
current = nums2[j];
j--;
}
nums1[tail] = current;
tail--;
}
}
}
Java实现合并两个有序数组的两种方法:sort函数与双指针
文章介绍了如何使用Java编程语言中的sort函数和双指针技巧来合并两个已排序的整数数组。solution1使用Arrays.sort对nums1进行排序,而solution2则通过比较两个指针指向的元素直接插入到nums1中,保持其有序性。
278

被折叠的 条评论
为什么被折叠?



