class Solution {
public:
void merge(int A[], int m, int B[], int n) {
// Note: The Solution object is instantiated only once and is reused by each test case.
vector<int> tmp(m+n,0);//O(m+n)的辅助空间
int loc1=0,loc2=0,loc3=0;
while(loc1<=m-1&&loc2<=n-1)
{
if(A[loc1]<B[loc2])
tmp[loc3++]=A[loc1++];
else//保证A[]中始终放小的
tmp[loc3++]=B[loc2++];
}
while(loc1<=m-1)//将A[]中剩下的插入tmp末尾
tmp[loc3++]=A[loc1++];
while(loc2<=n-1)//将B[]中剩下的插入tmp末尾
tmp[loc3++]=B[loc2++];
for(int i=0;i<m+n;i++)
A[i]=tmp[i];
}
};
【leetcode】Merge Sorted Array
最新推荐文章于 2021-10-23 14:47:57 发布