Leetcode–Merge Sorted Array

The Problem:

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 andn respectively.

Notes:

  1. Simple merge sort, note that we are doing it in space, so start from the end because we have of extra space there.

Java Solution:

public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        int k = m+n-1; 
        int i = m-1;
        int j = n-1;
        while(k >=0){
            if (i>=0 && j>=0){
                if(A[i] < B[j]){
                    A[k] = B[j];
                    j--;
                }
                else{
                    A[k] = A[i];
                    i--;
                }
            }
            else if(i>=0){
                A[k] = A[i];
                i--;
            }
            else if(j>=0){
                A[k] = B[j];
                j--;
            }
            else{
                break;
            }
            k--;
        }
    }
}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s