本博客rss订阅地址: http://feed.cnblogs.com/blog/u/147990/rss

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.                                              本文地址

分析:由于题目假设了A可以存放所有A和B的元素,因此我们可以从两个数组的尾部开始遍历,将较大者放入数组A尾部(尾部下标递减)。时间复杂度O(m+n),常数空间复杂度

 1 class Solution {
 2 public:
 3     void merge(int A[], int m, int B[], int n) {
 4         //同时从两个数组尾部开始遍历,将较大者放在A的尾部
 5         int i = m+n-1, ia = m-1, ib = n-1;
 6         while(ia >= 0 && ib >= 0)
 7             A[i--] = A[ia] > B[ib] ? A[ia--] : B[ib--];
 8         while(ib >= 0)A[i--] = B[ib--];
 9     }
10 };

【版权声明】转载请注明出处:http://www.cnblogs.com/TenosDoIt/p/3451948.html

posted @ 2013-11-30 23:43  tenos  阅读(621)  评论(0编辑  收藏  举报

本博客rss订阅地址: http://feed.cnblogs.com/blog/u/147990/rss

公益页面-寻找遗失儿童