前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode14|合并排序的数组

LeetCode14|合并排序的数组

作者头像
码农王同学
发布2020-08-12 14:56:07
3230
发布2020-08-12 14:56:07
举报
文章被收录于专栏:后端Coder后端Coder

1,问题简述

给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。编写一个方法,将 B 合并入 A 并排序。

初始化 A 和 B 的元素数量分别为 m 和 n。

2,示例

代码语言:javascript
复制
输入:
A = [1,2,3,0,0,0], m = 3
B = [2,5,6],       n = 3

输出: [1,2,2,3,5,6]

3,题解思路

比对数组A和数组B的元素大小,用新数组装填这些元素,最后直接使用函数进行复制元素到数组A中。

4,题解程序

代码语言:javascript
复制
 
public class MergeTest {
    public static void main(String[] args) {
        int[] A = {1, 2, 3, 0, 0, 0};
        int m = 3;
        int[] B = {2, 5, 6};
        int n = 3;
        merge(A, m, B, n);
        for (Integer num : A
        ) {
            System.out.print(num + "\t");
        }
    }

    public static void merge(int[] A, int m, int[] B, int n) {
        int[] result = new int[m + n];
        int i = 0;
        int j = 0;
        int pos = 0;
        while (i < m && j < n) {
            result[pos++] = A[i] < B[j] ? A[i++] : B[j++];
        }
        while (i < m) {
            result[pos++] = A[i++];
        }
        while (j < n) {
            result[pos++] = B[j++];
        }
        System.arraycopy(result, 0, A, 0, result.length);
    }
}

5,总结,这道题也是属于以往做过的内容,最近整理出来的这些题算是回顾一下过往的内容,谈不上新颖的地方,但是自己在梳理一下做过的内容,对自己而言增进了一些感触和思考还是有点作用的,作为java的一名后端开发者而言,以往写过的内容都帮助了自己很多,自己也比较喜欢这方面的总结,所以谈不上刻意去做,所以这方面自己在说其它也没有意义了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农王同学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档