我必须编写一个方法,将两个已按升序排列的数组合并为一个按升序排序的数组。但是,它们的长度不同,因此递增会使它们超出范围。
int[] mergeTwo(int[] nums1, int[] nums2) {
int[] arr = new int[nums1.length+nums2.length];
int index_1=0;
int index_2=0;
int content_1=0;
int content_2=0;
for(int steps=0;steps<arr.length&&index_1<nums1.length&&index_2<nums2.length;steps++) {
content_1=nums1[index_1];
content_2=nums2[index_2];
if(content_1<content_2) {
arr[steps]=content_1;
index_1++;
}
if(content_1>content_2) {
arr[steps]=content_2;
index_2++;
}
}
return arr;
}
要使此方法有效,我需要修复什么?非常感谢!
答案 0 :(得分:1)
断开循环后,将剩余的元素(从其中一个数组)添加到最终数组
while(index_1 < nums1.length)
{
arr[steps] = nums1[index_1];
index_1++;
steps++;
}
while(index_2 < nums2.length)
{
arr[steps] = nums2[index_2];
index_2++;
steps++;
}