力扣(LeetCode)88. 合并两个有序数组(C++)
创始人
2024-02-18 23:53:22
0

朴素思想

朴素思想,开第三个数组,对 nums1nums1nums1 和 nums2nums2nums2 进行二路归并。

class Solution {
public:void merge(vector& nums1, int m, vector& nums2, int n) {vector nums3(m+n);int i =0,j = 0,k=0;//i指nums1,j指nums2,k指nums3while(i

时间复杂度: O(n+m)O(n+m)O(n+m) , nnn 是 nums1nums1nums1 的长度, mmm 是 nums2nums2nums2 的长度,遍历所有数的时间复杂度是 O(n+m)O(n+m)O(n+m) 。

空间复杂度: O(n+m)O(n+m)O(n+m) ,nums3nums3nums3 的空间复杂度是 O(n+m)O(n+m)O(n+m) 。

逆序归并

由于 nums1.size()=m+nnums1.size()=m+nnums1.size()=m+n ,思考倒着归并。设极端情况,nums2nums2nums2 的元素全部大于 nums1nums1nums1 ,需要把 nums2nums2nums2 接到 nums1nums1nums1 后面,nums1nums1nums1 前面 mmm 个数是 nums1nums1nums1 本身的数,后面 nnn 个数是 nums2nums2nums2 的数,m+n=nums1.size()m+n=nums1.size()m+n=nums1.size() ,这种极端情况也可以容纳。那么正常归并时,如果选择 nums1nums1nums1 的数,那么 nums1nums1nums1 最后的数就可以被覆盖了,这种情况同样可以容纳。

class Solution {
public:void merge(vector& nums1, int m, vector& nums2, int n) {int i =m-1,j = n-1,k=m+n-1;//i指nums1,j指nums2,k指nums1末尾while(i>=0&&j>=0)if(nums1[i]>nums2[j]) nums1[k--] = nums1[i--];else nums1[k--] = nums2[j--];while(i>=0) nums1[k--] = nums1[i--];while(j>=0) nums1[k--] = nums2[j--];}
};

时间复杂度: O(n+m)O(n+m)O(n+m) , nnn 是 nums1nums1nums1 的长度, mmm 是 nums2nums2nums2 的长度,遍历所有数的时间复杂度是 O(n+m)O(n+m)O(n+m) 。

空间复杂度: O(1)O(1)O(1) ,只使用了常量级空间 。

致语

  • 理解思路很重要!
  • 欢迎读者在评论区留言,清墨看到就会回复的。

AC

AC

相关内容

热门资讯

原创 监... 12月19日上午,阳江市生态环境局举办新闻通气会解读《生态环境监测条例》,《条例》通过统一标准、明确...
美股异动丨拼多多大涨近7%,宣... 拼多多(PDD.US)盘初涨近7%报113美元。公司在年度股东大会上宣布实行联席董事长制度,任命赵佳...
柔性调解+司法建议,潮安文祠法... 商铺“上下楼”因招牌、外机起纠纷,如何化解才能既息事宁人,又杜绝同类问题重演?近日,潮州市潮安区文祠...
涉案超600万元!南京市知识产... 近日,南京市知识产权保护中心受南京仲裁委员会委托,成功调解一起大额跨境电商知识产权纠纷,以“人民调解...
拼多多开启联席董事长制度!Te... 12月19日,拼多多集团在年度股东大会上宣布升级公司治理架构,实行联席董事长制度。 经董事会批准,赵...
效率翻倍! “重庆调解在线”数... 12月19日,重庆市人大监察司法委、市政协社法委和市司法局举办2025年“联合开放日”暨调研活动。 ...
闻泰科技将审议关联交易议案 增... 闻泰科技(600745)12月19日晚间披露2025年第五次临时股东会会议材料,将审议2026年度日...
《辽宁省反家庭暴力条例》出台 ... 中新网沈阳12月19日电 (韩宏 李晛)记者19日从辽宁省政府新闻办召开的发布会上获悉,《辽宁省反家...
广州车展岚图赠送“泰山石”?监... 闲鱼现“车展泰山石”交易,卖家称“品牌方说是泰山石” 在闲鱼搜索“岚图车展”,可以看到多个名为“岚图...
《生态环境监测条例》自明年1月... 《生态环境监测条例》自明年1月1日起施行