Wednesday, December 26, 2012

[LeetCode] 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 to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
» Solve this problem

[解题思路]
从后往前填空。


[Code]
1:    void merge(int A[], int m, int B[], int n) {  
2:      // Start typing your C/C++ solution below  
3:      // DO NOT write int main() function  
4:      int k = m+n-1;  
5:      int i = m-1, j =n-1;  
6:      for(; i>=0 && j>=0; k--)  
7:      {  
8:        if(A[i] >= B[j])  
9:        {  
10:          A[k] = A[i];  
11:          i--;  
12:        }  
13:        else  
14:        {  
15:          A[k] = B[j];  
16:          j--;  
17:        }  
18:      }  
19:      while(j >=0)  
20:      {  
21:        A[k] = B[j];  
22:        k--; j--;  
23:      }  
24:    }  




No comments: