今日题目88题,每日一题微信交流群可以点击右下角:合作转载->联系我,拉你入群。
今日题目是归并排序模板题,也是简单题,直接套用模板刷吧。
题目:
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。
示例 1:
输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
输出:[1,2,2,3,5,6]
题解: 直接归并排序
class Solution {
public:
void merge(vector& nums1, int m, vector& nums2, int n) {
int mn = nums1.size();
while (mn) {
if (!m && n) {
nums1[--mn] = nums2[--n];
} else if (m && !n) {
break;
} else if (nums1[m-1] < nums2[n-1]) {
nums1[--mn] = nums2[--n];
} else {
nums1[--mn] = nums1[--m];
}
}
}
};
本题简写方法:
class Solution {
public:
void merge(vector& nums1, int m, vector& nums2, int n) {
int mn = nums1.size();
while (n) {
if (m==0 || nums1[m-1] < nums2[n-1]) {
nums1[--mn] = nums2[--n];
} else {
nums1[--mn] = nums1[--m];
}
}
}
};
本节完~
往日每日一题:
【LeetCode每日一题】83. 删除排序链表中的重复元素
【LeetCode每日一题】61. 旋转链表
【LeetCode每日一题】173. 二叉搜索树迭代器
【LeetCode每日一题】190. 颠倒二进制位
【LeetCode每日一题】74. 搜索二维矩阵
像树一样简单回溯递归【LeetCode每日一题】90. 子集 II
4月你好,愚人节果然是笨人,【LeetCode每日一题】1006. 笨阶乘
【LeetCode每日一题】面试题 17.21. 直方图的水量
不知不觉已经坚持8天了,你呢?【LeetCode每日一题】1143. 最长公共子序列
Day10【LeetCode每日一题】781. 森林中的兔子