Given two sorted integer arrays A and B, merge B into A as one sorted array.
Note:
You may assume that A has enough space to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int i,j,k;
int *A1=new int[m];
for(i=0 ; i<m ; i++)
A1[i]=A[i];
for(i=0,j=0,k=0;i<m&&j<n;k++){
if(A1[i]<B[j])
A[k]=A1[i++];
else
A[k]=B[j++];
}
int *p=i==m?B+j:A1+i;
for(i=k ; i<m+n;)
A[i++]=*p++;
}
};
本文介绍了一个C++函数,用于将两个已排序的整数数组B合并到A中,使之成为一个有序数组。假设A有足够的空间容纳B中的额外元素。通过使用临时数组A1来保存A的初始元素,并使用三个指针i、j、k来遍历和比较两个数组中的元素,按升序合并到A中。
385

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



