首页 > 其他分享 >合并两个无序数组

合并两个无序数组

时间:2023-09-26 12:55:52浏览次数:29  
标签:数组 int 合并 无序 ++ vector arr2 arr1

合并两个无序数组

现在我有两个无序的数组(长度不相等),我现在想将两个数组合并

#include <iostream>
#include <vector>

using namespace std;

vector<int> mergeArrays(vector<int>& arr1, vector<int>& arr2) {
    vector<int> res;
    int i = 0, j = 0;//设置两个指针分别指向两个数组

    while (i < arr1.size() && j < arr2.size()) {//当两个指针都小于各自的数组长度时
        //将小的数不断添加到结果数组中
        if (arr1[i] < arr2[j]) {
            result.push_back(arr1[i]);
            i++;
        } else {
            result.push_back(arr2[j]);
            j++;
        }
    }
	//当一个数组遍历完成,剩下的另一个数组中的元素一定都是比目前结果数组中的元素大的
    //按顺序加入结果数组即可
    while (i < arr1.size()) {
        result.push_back(arr1[i]);
        i++;
    }

    while (j < arr2.size()) {
        result.push_back(arr2[j]);
        j++;
    }

    return res;
}

int main() {
    int n, m;
    cin >> n >> m; // 输入两个数组的长度

    vector<int> arr1(n);
    vector<int> arr2(m);

    for (int i = 0; i < n; i++) {
        cin >> arr1[i]; // 输入第一个数组的元素
    }

    for (int i = 0; i < m; i++) {
        cin >> arr2[i]; // 输入第二个数组的元素
    }

    vector<int> merged = mergeArrays(arr1, arr2);

    for (int num : merged) {
        cout << num << " ";
    }

    return 0;
}

标签:数组,int,合并,无序,++,vector,arr2,arr1
From: https://www.cnblogs.com/DAYceng/p/17729843.html

相关文章

  • LeetCode54.螺旋数组
    本题关键在于模拟数组螺旋的步骤,使用 flag 二维数组标识矩阵某位置是否被访问过,使用 turn 变量指示当前寻找的方向, turn 为0时,代表向右查找, turn 为1时,代表向下查找, turn 为2时,代表向左查找, turn 为3时,代表向上查找,具体的代码如下:classSolution{publicList<......
  • EasyExcel合并单元格
    普通不合并单元格publicstaticvoidwriteExcel(){//写excel的路径,当前项目路径下StringfileName=getPath();//构建ExcelWriterExcelWriterexcelWriter=EasyExcel.write(fileName).excelType(ExcelTypeEnum.XLSX).build();//构建sheet......
  • 随想录Day5|242. 有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
    随想录Day5|242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和 242.有效的字母异位词文章&视频讲解给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。1......
  • 队列环形数组实现两种实现
      1importjava.util.Iterator;//环形队列,数组容量应该比实际需要大一publicclassMain{publicstaticvoidmain(String[]args){ArrayQueue<Integer>a=newArrayQueue<>(10);a.push(1);a.push(2);a.push(3);a.push(4)......
  • 如何实现一个数组按照另外一个数组的顺序进行排序?
    数组arr1按照arr2的顺序展示,如何实现:一、简单类型数组letarr1=[1,2,3,4,5] letarr2=[5,3,2,4,1]arr1.sort((prev,next)=>{ returnarr2.indexOf(prev)-arr2.indexOf(next)})console.log(arr1)//[5,3,2,4,1]二、复杂类型数组letarr1=[{......
  • (转)图的存储结构|邻接矩阵、邻接表、十字链表、邻接多重表、边集数组
    原文:https://juejin.cn/post/6996132859001962504?searchId=20230925172238C35D1579B2CBC3D2F78A7.4图的存储结构图的存储结构相较线性表与树来说就更加复杂了。首先,我们口头上说的“顶点的位置”或“邻接点的位置”只是一个相对的概念。其实从图的逻辑结构定义来看,图上任何......
  • 【C++】动态内存管理 ⑤ ( 基础数据类型数组 内存分析 | 类对象 内存分析 | malloc 分
    文章目录一、基础数据类型数组内存分析1、malloc分配内存delete释放内存2、new分配内存free释放内存二、类对象内存分析1、malloc分配内存delete释放内存2、new分配内存free释放内存博客总结:C语言中使用malloc分配的内存,使用free进行释放;C++语言中......
  • Java -【字符串,数组,哈希表】常用操作
    一.字符串创建字符串:可以使用双引号或者String类的构造方法创建字符串。Stringstr1="HelloWorld";Stringstr2=newString("HelloWorld");连接字符串:可以使用加号或者String类的concat()方法连接字符串。Stringstr3=str1+str2;Stringstr4=str1.concat(str2);......
  • Go - 【字符串,数组,哈希表】常用操作
    一.字符串字符串长度:s:="hello"l:=len(s)fmt.Println(l)//输出5遍历字符串:s:="hello"fori,c:=ranges{fmt.Printf("%d:%c",i,c)}//输出:0:h1:e2:l3:l4:ofori:=0;i<len(s);i++{ fmt.Printf("%s",s[......
  • Java -【字符串,数组,哈希表】常用操作
    一.字符串创建字符串:可以使用双引号或者String类的构造方法创建字符串。Stringstr1="HelloWorld";Stringstr2=newString("HelloWorld");连接字符串:可以使用加号或者String类的concat()方法连接字符串。Stringstr3=str1+str2;Stringstr4=str1.concat(str2);获......