2014年5月10日星期六

Loop Solution - Merge Sorted Array

The idea is to loop the array in a reversed order. If from beginning, it definitely loses some elements, but if loop from end, then this is solved. Think ON DIFFerent ways.

public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        int newIndex = m + n - 1;
        int indexA = m - 1;
        int indexB = n - 1;
        while(indexA >= 0 && indexB >= 0){
            if(A[indexA] > B[indexB]){
                A[newIndex] = A[indexA];
                indexA--;
            }else{
                A[newIndex] = B[indexB];
                indexB--;
            }
            newIndex--;
        }
       
        while(indexB >= 0){
            A[newIndex] = B[indexB];
            indexB--;
            newIndex--;
        }
    }
}

没有评论: