现在的位置: 首页 > 综合 > 正文

[LeetCode] Merge Sorted Array

2018年04月12日 ⁄ 综合 ⁄ 共 548字 ⁄ 字号 评论关闭

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.

这个嘛,从后往前归并就好了。

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        
    		if ( n==0 )
					return ;
			int last=m+n-1;
			int pA=m-1,pB=n-1;
			while(pA>=0&&pB>=0)
			{
					if ( A[pA]>=B[pB] )
					{
							A[last--]=A[pA];
							pA--;
					}
					else
					{
							A[last--]=B[pB];
							pB--;
					}
			}
			int pt=pA>=0?pA:pB;
			int* rest=pA>=0?A:B;
			while(pt>=0)
			{
					A[last--]=rest[pt--];
			}	
    }
};

抱歉!评论已关闭.