Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.
public class Solution {
public void merge(int A[], int m, int B[], int n) {
// for write to A
int cur = m+n-1;
// for A
int i = m-1;
// for B
int j =n-1;
for(; i>=0 && j>=0; cur--)
{
if(A[i] >= B[j])
{
A[cur] = A[i];
i--;
}
else
{
A[cur] = B[j];
j--;
}
}
while(j >=0) // don't need to do anything if i>=0
{
A[cur] = B[j];
cur--;
j--;
}
}
}