题解 | #合并两个有序的数组#
合并两个有序的数组
https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665
/* class Solution { public: void merge(int A[], int m, int B[], int n) { for(int i=0;i<n;i++){ A[m+i]=B[i]; } sort(A,A+m+n); } }; */ //双指针法 class Solution { public: void merge(int A[], int m, int B[], int n) { int a=m-1;//指向A最后一个元素 int b=n-1; int i=m+n-1;//指向A空间的最后一个位置 while(a>=0&&b>=0){ if(A[a]>B[b]){ A[i--]=A[a--]; } else{ A[i--]=B[b--]; } } if(a<0){ while(b>=0) A[i--]=B[b--]; } } };