当前位置:网站首页>88. 合并两个有序数组
88. 合并两个有序数组
2022-07-03 05:45:00 【yitahutu79】
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。
注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。
示例 1:
输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
输出:[1,2,2,3,5,6]
解释:需要合并 [1,2,3] 和 [2,5,6] 。
合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。
示例 2:
输入:nums1 = [1], m = 1, nums2 = [], n = 0
输出:[1]
解释:需要合并 [1] 和 [] 。
合并结果是 [1] 。
示例 3:
输入:nums1 = [0], m = 0, nums2 = [1], n = 1
输出:[1]
解释:需要合并的数组是 [] 和 [1] 。
合并结果是 [1] 。
注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。
提示:
nums1.length == m + n
nums2.length == n
0 <= m, n <= 200
1 <= m + n <= 200
-109 <= nums1[i], nums2[j] <= 109
方法一:双指针法
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int arr[205] = {
0};
for (int i = 0, n1 = 0, n2 = 0; i < m + n; i++){
if (n1 == m) arr[i] = nums2[n2++];
else if(n2 == n) arr[i] = nums1[n1++];
else if (nums1[n1] < nums2[n2]) arr[i] = nums1[n1++];
else arr[i] = nums2[n2++];
}
for (int i = 0, j = 0; i < m + n; i++) {
nums1[i] = arr[j++];
}
}
};
方法二:sort排序
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
for (int i = 0; i < n; i++) {
nums1[m + i] = nums2[i];
}
sort(nums1.begin(), nums1.end());
}
};
边栏推荐
- Crontab command usage
- Redhat7系统root用户密码破解
- [teacher Zhao Yuqiang] Cassandra foundation of NoSQL database
- Apt update and apt upgrade commands - what is the difference?
- Mapbox tasting value cloud animation
- Latest version of source insight
- If function of MySQL
- pytorch 搭建神经网络最简版
- [set theory] relational closure (relational closure related theorem)
- Niuke JS separator
猜你喜欢

How does win7 solve the problem that telnet is not an internal or external command

大二困局(复盘)

Beaucoup de CTO ont été tués aujourd'hui parce qu'il n'a pas fait d'affaires

Redis使用Lua脚本简介
![[video of Teacher Zhao Yuqiang's speech on wot] redis high performance cache and persistence](/img/a7/2140744ebad9f1dc0a609254cc618e.jpg)
[video of Teacher Zhao Yuqiang's speech on wot] redis high performance cache and persistence
![[teacher Zhao Yuqiang] RDB persistence of redis](/img/cc/5509b62756dddc6e5d4facbc6a7c5f.jpg)
[teacher Zhao Yuqiang] RDB persistence of redis

Apache+php+mysql environment construction is super detailed!!!

中职网络子网划分例题解析

【一起上水硕系列】Day 10

MySQL 5.7.32-winx64 installation tutorial (support installing multiple MySQL services on one host)
随机推荐
Linux登录MySQL出现ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
Life is a process of continuous learning
Source insight automatic installation and licensing
EMD distance - example of use
How does win7 solve the problem that telnet is not an internal or external command
Introduction to redis using Lua script
期末复习DAY8
Ext4 vs XFS -- which file system should you use
Together, Shangshui Shuo series] day 9
QT read write excel -- qxlsx insert chart 5
ES 2022 正式发布!有哪些新特性?
【无标题】
1. 两数之和
2022.7.2day594
32GB Jetson Orin SOM 不能刷机问题排查
Altaro VM backup getting started
"C and pointer" - Chapter 13 advanced pointer int * (* (* (*f) () [6]) ()
Ensemble, série shuishu] jour 9
If function of MySQL
[advanced pointer (2)] | [function pointer, function pointer array, callback function] key analysis + code explanation