码迷,mamicode.com
首页 > 编程语言 > 详细

合并排序数组

时间:2015-11-26 06:58:04      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

合并两个排序的整数数组A和B变成一个新的数组。

样例

给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]

挑战

你能否优化你的算法,如果其中一个数组很大而另一个数组很小?

解题思路:这道题为了优化算法,我想的是把元素多的数组A向元素少的数组B中添加;遍历元素少的数组B,遇到A中比当前B中小的即可插进去,当B遍历完之后,将其余的A全部放在B的末尾即可。

 1 class Solution {
 2     /**
 3      * @param A and B: sorted integer array A and B.
 4      * @return: A new sorted integer array
 5      */
 6     public ArrayList<Integer> mergeSortedArray(ArrayList<Integer> A, ArrayList<Integer> B) {
 7         // write your code here
 8         if(A.size()<B.size()){
 9             ArrayList<Integer>  tmp = A;
10             A = B;
11             B = tmp;
12         };
13         int i =0 ,j=0;
14         while(i<A.size()&&j<B.size()){
15             if(A.get(i)<B.get(j)){
16                 B.add(j,A.get(i));
17                 i++;
18                 j++;
19             }else{
20                 j++;
21             }
22         }
23         if(j==B.size()&&i<A.size()){
24             while(i<A.size()){
25                 B.add(A.get(i));
26                 i++;
27             }
28         }
29         return B;
30     }
31 }

 

合并排序数组

标签:

原文地址:http://www.cnblogs.com/wangnanabuaa/p/4996497.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!