栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[C++] 牛客网:合并两个有序的数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[C++] 牛客网:合并两个有序的数组

主要是体验一下牛客网里的核心代码模式到底是怎么弄的。。还有C++这个东西平常用的太少了,试一试。
以外的还体验到了sort()函数的使用。
来源:牛客网
题目链接:合并两个有序的数组
知识点:数组、双指针

描述

给出一个整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组

数据范围:

注意:
  1. 保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为 m+n
  2. 不要返回合并的数组,将数组 B 的数据合并到 A 里面就好了
  3. A 数组在[0,m-1]的范围也是有序的
例1:

A: [4,5,6,0,0,0],m=3
B: [1,2,3],n=3
合并过后A为:
A: [1,2,3,4,5,6]

示例1 输入:
[4,5,6],[1,2,3]
返回值:
[1,2,3,4,5,6]
说明:

A数组为[4,5,6],B数组为[1,2,3],后台程序会预先将A扩容为[4,5,6,0,0,0],B还是为[1,2,3],m=3,n=3,传入到函数merge里面,然后请同学完成merge函数,将B的数据合并A里面,最后后台程序输出A数组

示例2 输入:
[1,2,3],[2,5,6]
返回值:
[1,2,2,3,5,6]

思路

主要是体验一下牛客网上的核心代码模式到底是怎么操作的,还有C++。
这题应该算是很简单了,不过居然没有#include就不能用strcat的方法。本来想一个strcat和一个sort()光速解决问题,没想到还是要手动连接。
本质上就是连接之后进行一个排序,注意这里要破坏原数组A,返回值是void(就是说它直接输出你破坏掉的A)。
sort()的使用:

sort(A, A + m + n);

解题代码
class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int i, j;
        j = 0;
        for (i = m; i < m + n; i++) {
            A[i] = B[j];
            j++;
        }
        sort(A, A + m + n);
    }
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/274583.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号