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 (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
1 public class Solution { 2 public void merge(int A[], int m, int B[], int n) { 3 int[] newA=new int[m+n]; 4 int indexA = 0,indexB=0; 5 int i=0; 6 while (indexA<m && indexB<n) { 7 if (A[indexA]<B[indexB]) { 8 newA[i]=A[indexA]; 9 indexA++; 10 }else { 11 newA[i]=B[indexB]; 12 indexB++; 13 } 14 ++i; 15 } 16 if (indexA==m) { 17 for (int j = indexB; j < n; j++) { 18 newA[i]=B[j]; 19 ++i; 20 } 21 } 22 if (indexB==n) { 23 for (int j = indexA; j < m; j++) { 24 newA[i]=A[j]; 25 ++i; 26 } 27 } 28 29 for (int j = 0; j < m+n; j++) { 30 A[j]=newA[j]; 31 } 32 33 } 34 }