当前位置:网站首页>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());
}
};
边栏推荐
- [set theory] relational closure (relational closure related theorem)
- How do I migrate my altaro VM backup configuration to another machine?
- Xaml gradient issue in uwp for some devices
- kubernetes资源对象介绍及常用命令(五)-(ConfigMap)
- Using the ethtool command by example
- 牛客网 JS 分隔符
- Exception when introducing redistemplate: noclassdeffounderror: com/fasterxml/jackson/core/jsonprocessingexception
- 获取并监控远程服务器日志
- [trivia of two-dimensional array application] | [simple version] [detailed steps + code]
- Altaro requirements for starting from backup on Hyper-V
猜你喜欢

Understand one-way hash function

【一起上水硕系列】Day 10

Apache+PHP+MySQL环境搭建超详细!!!

Mapbox tasting value cloud animation

配置xml文件的dtd

How to set up altaro offsite server for replication

Method of finding prime number

Today, many CTOs were killed because they didn't achieve business
![[teacher Zhao Yuqiang] index in mongodb (Part 2)](/img/a7/2140744ebad9f1dc0a609254cc618e.jpg)
[teacher Zhao Yuqiang] index in mongodb (Part 2)

Sophomore dilemma (resumption)
随机推荐
2022.6.30DAY591
EMD distance - example of use
32GB Jetson Orin SOM 不能刷机问题排查
Strategy pattern: encapsulate changes and respond flexibly to changes in requirements
Installing altaro VM backup
Best practices for setting up altaro VM backups
2022.DAY592
Altaro o365 total backup subscription plan
Shanghai daoning, together with American /n software, will provide you with more powerful Internet enterprise communication and security component services
Redhat7 system root user password cracking
最大似然估计,散度,交叉熵
2022.7.2 模拟赛
ansible防火墙firewalld设置
Error 1045 (28000) occurs when Linux logs in MySQL: access denied for user 'root' @ 'localhost' (using password: yes)
Exception when introducing redistemplate: noclassdeffounderror: com/fasterxml/jackson/core/jsonprocessingexception
一起上水碩系列】Day 9
AtCoder Beginner Contest 258(A-D)
Troubleshooting of 32GB Jetson Orin SOM failure to brush
Today, many CTOs were killed because they didn't achieve business
chromedriver对应版本下载