From 51bbc483ea9d42b8d201e4861b795434bdfedeb3 Mon Sep 17 00:00:00 2001 From: applewjg Date: Sun, 18 Jan 2015 22:20:45 +0800 Subject: [PATCH] MergeSortedArray Change-Id: I47cac0a413ef4415ecc6c92d4ddadf96823ab782 --- MergeSortedArray.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 MergeSortedArray.java diff --git a/MergeSortedArray.java b/MergeSortedArray.java new file mode 100644 index 0000000..39132eb --- /dev/null +++ b/MergeSortedArray.java @@ -0,0 +1,26 @@ +/* + Author: Andy, nkuwjg@gmail.com + Date: Jan 7, 2015 + Problem: Merge Sorted Array + Difficulty: Easy + Source: https://oj.leetcode.com/problems/merge-sorted-array/ + Notes: + 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 to hold additional elements from B. + The number of elements initialized in A and B are m and n respectively. + + Solution: From back to forth. + */ + +public class Solution { + public void merge(int A[], int m, int B[], int n) { + int i = m - 1; + int j = n - 1; + int x = m + n - 1; + while (i >= 0 && j >= 0) + if (A[i] >= B[j]) A[x--] = A[i--]; + else A[x--] = B[j--]; + while (j >= 0) A[x--] = B[j--]; + } +} \ No newline at end of file