首页 > 其他分享 >8577 合并顺序表

8577 合并顺序表

时间:2024-09-20 18:49:16浏览次数:9  
标签:vector ++ nB 元素 合并 int 8577 顺序

### 思路
1. 读取顺序表A和B的元素个数和元素。
2. 使用双指针法合并两个有序顺序表A和B到新的顺序表C。
3. 输出顺序表A、B和合并后的顺序表C。

### 伪代码
1. 读取顺序表A的元素个数和元素。
2. 读取顺序表B的元素个数和元素。
3. 初始化两个指针分别指向顺序表A和B的起始位置。
4. 比较两个指针所指向的元素,将较小的元素加入顺序表C,并移动指针。
5. 如果一个顺序表已经遍历完,将另一个顺序表剩余的元素加入顺序表C。
6. 输出顺序表A、B和合并后的顺序表C。

### C++代码

#include <iostream>
#include <vector>
using namespace std;

void mergeSortedLists(const vector<int>& A, const vector<int>& B, vector<int>& C) {
    int i = 0, j = 0;
    while (i < A.size() && j < B.size()) {
        if (A[i] < B[j]) {
            C.push_back(A[i]);
            i++;
        } else {
            C.push_back(B[j]);
            j++;
        }
    }
    while (i < A.size()) {
        C.push_back(A[i]);
        i++;
    }
    while (j < B.size()) {
        C.push_back(B[j]);
        j++;
    }
}

int main() {
    int nA, nB;
    cin >> nA;
    vector<int> A(nA);
    for (int i = 0; i < nA; i++) {
        cin >> A[i];
    }
    cin >> nB;
    vector<int> B(nB);
    for (int i = 0; i < nB; i++) {
        cin >> B[i];
    }

    vector<int> C;
    mergeSortedLists(A, B, C);

    cout << "List A:";
    for (int i = 0; i < A.size(); i++) {
        cout << A[i] << " ";
    }
    cout << endl;

    cout << "List B:";
    for (int i = 0; i < B.size(); i++) {
        cout << B[i] << " ";
    }
    cout << endl;

    cout << "List C:";
    for (int i = 0; i < C.size(); i++) {
        cout << C[i] << " ";
    }
    cout << endl;

    return 0;
}


 

标签:vector,++,nB,元素,合并,int,8577,顺序
From: https://blog.csdn.net/huang1xiao1sheng/article/details/142301165

相关文章

  • C++顺序结构(2)
    一、变量、赋值语句与表达式1、天安门广场在北京市中心,它南北长880米,东西宽500米,试编一程序,计算天安门广场面积是多少平方米。点击查看代码1//试编程,计算天安门广场的面积是多少平方米2#include<iostream>//包含输入输出流头文件iostream3usingnamespacestd;......
  • Java怎么把多个对象的list的数据合并
    在Java中,将多个对象的列表数据合并成一个新的列表可以通过多种方式实现。假设有一个List的列表,每个列表都包含相同类型的对象,可以使用StreamAPI或传统的循环来实现这一目标。示例代码假设我们有一个User类:publicclassUser{privateStringname;privateinta......
  • js数组合并与对象合并的方法汇总
    ......
  • 快速查找EXCEL整个工作表中的合并单元格
    1.按下`Alt+F11`,打开VBA编辑器。2.在左侧的“项目”窗口中,找到你的工作簿,右键点击该工作簿下的任意工作表,选择**插入->模块**。3.在新建的模块窗口中,粘贴以下代码:SubHighlightMergedCells()DimcellAsRangeDimwsAsWorksheetSetws=ActiveSheet......
  • 界面控件Telerik UI for WinForms 2024 Q3概览 - 支持合并单元格等
    TelerikUIforWinForms拥有适用WindowsForms的110多个令人惊叹的UI控件。所有的UIforWinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌面和平板电脑应用程序提供一致美观的下一代用户体验。本文将介绍界面组件TelerikUIforWinForms在今年第一个重大版本2024......
  • java_day3_Scanner,顺序结构,选择结构(if,switch),循环结构(for,while),
    一、Scanner键盘录入:程序运行过程中,用户可以根据自己的需求输入参与运算的值实现键盘录入的步骤1、导包2、创建键盘录入对象3、调用方法实现键盘录入1)输入整数2)输入字符串publicclassScannerDemo1{publicstaticvoidmain(String[......
  • 算法设计与分析(合并排序
    目录归并排序(MergeSort)的C++实现源代码解释结果小结:归并排序(MergeSort)的C++实现归并排序是一种分而治之的算法,它将数组分成两半,对每半部分递归地应用归并排序,然后将排序好的两半合并成一个有序的数组。以下是一个归并排序的C++实现。源代码#include<iostream>usingnames......
  • SAP FI 会计凭证 行项目合并
    ECC S4 区别:ECC 会计凭证行项目是合并后的数据,S4是明细数据参考SAPFI系列(020)-会计凭证行项目合并-简书对比两者OBCY的区别ECC        S4......
  • C++信奥老师解一本通题 1369:合并果子(fruit)
    ​【题目描述】在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n−1次合并之后,就只剩下一堆了。多多在合并......
  • 智能 Uber 发票 PDF 合并工具
    在现代商务出行中,尤其是在跨国出差中,处理和整合大量Uber发票已成为一项不小的挑战。手动整理和合并这些发票不仅耗时,还容易出错。作为开发者,为什么不开发一个自动化工具,将这些任务交给代码来完成呢?在这篇博客中,我将带你一步步构建一个结合PyQt5、pdfplumber和PyPDF2的智......