合并排序数组

题意

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

样例

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

思路

创建一个新的数组,长度是 A 和 B 长度之合,再设三个指针,分别指向 A,B 和新数组的第一个元素,然后遍历两个数组,依次比较每一个元素,较小的数存入新数组中,并将较小值的指针与新数组的指针向后移动一位。最后当遍历完 A 或 B 以后,就将剩余数组的数据依次添加到新数组。

代码实现

class Solution {
    /**
     * @param A and B: sorted integer array A and B.
     * @return: A new sorted integer array
     */
    public int[] mergeSortedArray(int[] A, int[] B) {
        if (A == null || B == null) {
            return null;
        }
        
        int[] result = new int[A.length + B.length];
        
        int i = 0;
        int j = 0;
        int index = 0;
        
        while (i < A.length && j < B.length) {
            if (A[i] < B[j]){
                result[index++] = A[i++];
            } else {
                result[index++] = B[j++];
            }
        }
        
        while (i < A.length) {
            result[index++] = A[i++];
        }
        
        while (j < B.length) {
            result[index++] = B[j++];
        }
        
        return result;
    }
}

原题地址

LintCode:合并排序数组

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Ryan Miao

javascript中遇到的字符串对象处理

在javascript中对参数处理: 1 <script> 2 function getParam() 3 { 4 urlInfo=window.loc...

366110
来自专栏JavaEE

String类相关面试题很难?不要方,问题不大前言:一、字符串的创建:二、字符串的拼接:三、intern方法:总结:

Java中有一个String类,特别让人伤脑筋。因为它可以直接赋值,也可以new一下用构造器生成对象,还可以用加号拼接……这些不同的方式到底有什么区别?本文是个...

26650
来自专栏章鱼的慢慢技术路

Aizu_Insertion Sort

15080
来自专栏mathor

泛型

23070
来自专栏好好学java的技术栈

Java基础提升篇:equals()方法和“==”运算符

10330
来自专栏xingoo, 一个梦想做发明家的程序员

【面试虐菜】—— JAVA面试题(2)

1 String = 与 new 的不同 使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用“new”进行赋值,则每次都创建...

21150
来自专栏GopherCoder

Python 强化训练:第七篇

14540
来自专栏赵俊的Java专栏

删除排序数组中的重复数字

14020
来自专栏javathings

Java 函数调用时值传递还是引用传递?

值传递:函数调用时,传递的参数不是实参本身,而是把参数复制一份,传递到函数中,传递的是一份拷贝。如果参数是基本类型/值类型,那么就是把这个类型拷贝一份传到函数中...

75400
来自专栏吾爱乐享

java之学习正则表达式的替换功能

14030

扫码关注云+社区

领取腾讯云代金券