dcddc

西米大人的博客

0%

合并排序数组

题目描述

合并两个排序的整数数组A和B变成一个新的数组。

思路

两个数组分别按照从左到右取元素进行比较,取较小值写入数组,该值所在数组下标递增。
重复上述步骤,直到比完其中一个数组,将另一个数组的值复制过去即可。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public int[] mergeSortedArray(int[] A, int[] B) {
// Write your code here
int length = A.length + B.length;
int[] res = new int[length];
int i = 0;
int j = 0;
int count = 0;
while(i < A.length && j < B.length) {
if(A[i] < B[j]) {
res[count++] = A[i++];
}else {
res[count++] = B[j++];
}
}
if(i == A.length) {
while(j < B.length) {
res[count++] = B[j++];
}
}else {
while(i < A.length) {
res[count++] = A[i++];
}
}
return res;
}

考差点

  • 简单逻辑