当前位置:   article > 正文

两个有序数组合并_给定两个正整数数组a和b,将b合并到a中,使得a成为一个升序序数组,且a中数据不重复

给定两个正整数数组a和b,将b合并到a中,使得a成为一个升序序数组,且a中数据不重复

来源:登录—专业IT笔试面试备考平台_牛客网

问题描述: 

给定两个有序整数数组 A 和 B,将B合并到A中,使得 A 成为一个有序数组。 

说明: 

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

2. A有足够的空间(空间大小大于或等于 m + n)来保存 B 中的元素。 

3. 默认升序。 

输入描述: 

1

2

3

4

数组A,以及数组A元素数量 

数组B,以及数组B元素数量 

A = [1,6,7,0,0,0], m = 3 

B = [2,4,6], n = 3 

输出描述: 

1

2

合并后的数组A 

A = [1,2,4,6,6,7]; 

输入样例:

1

2

3

m=2,n=2 

1,3 

2,4 

输出样例: 

1

1 2 3 4

python代码:

  1. A=[1,6,7]
  2. B=[2,4,6]
  3. A=A+B
  4. print("合并后的A:",A)
  5. A.sort()
  6. print("排序后的A:",A)

输出结果:

  1. [1, 6, 7, 2, 4, 6]
  2. [1, 2, 4, 6, 6, 7]

C++代码:

  1. #include<iostream>
  2. #include<vector>
  3. #include<algorithm>
  4. using namespace std;
  5. int main()
  6. {
  7. vector<int> listA{1,6,7};
  8. vector<int> listB{ 2,4,6 };
  9. //将B中的元素压到A中
  10. for (int i = 0; i < listB.size(); i++)
  11. {
  12. listA.push_back(listB[i]);
  13. }
  14. //打印拼接后的向量
  15. for (auto it = listA.begin(); it != listA.end(); it++)
  16. {
  17. cout << *it << " ";
  18. }
  19. cout << endl;
  20. //排序
  21. sort(listA.begin(), listA.end(),less<int>());
  22. for (auto it = listA.begin(); it != listA.end(); it++)
  23. {
  24. cout << *it << " ";
  25. }
  26. cout << endl;
  27. }

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号