首页 > 代码库 > [leetcode]Merge Sorted Array

[leetcode]Merge Sorted Array

Merge Sorted Array

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.

 

算法思路:

剑指offer上面的原题,新数组从后往前生成。

 1 public class Solution { 2     public void merge(int A[], int m, int B[], int n) { 3         if(n == 0) return; 4         int index = m + n - 1; 5         int aIndex = m - 1; 6         int bIndex = n - 1; 7         while(index >= 0 ){ 8             if(bIndex < 0 ||( aIndex >= 0 && A[aIndex] >= B[bIndex])){ 9                 A[index] = A[aIndex];10                 aIndex--;11             }else if(aIndex < 0 || ( aIndex >= 0 && A[aIndex] < B[bIndex])){12                 A[index] = B[bIndex];13                 bIndex--;14             }15             index--;16         }17     }18 }