Merge Sorted Array, Leetcode 解题笔记

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.

把B里的元素插入A中,又不能覆盖A的值,很容易想到可以从后往前处理:

public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        
        while(m > 0 && n > 0){
            if(A[m-1] < B[n-1]){
                A[m+n-1] = B[n-1];
                n--;
            }
            else{
                A[m+n-1] = A[m-1];
                m--;
            }
        }
        while(n > 0){
            A[m+n-1] = B[n-1];
            n--;
        }
    }
}
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