前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[leetcode数组系列]6 合并两有序数组

[leetcode数组系列]6 合并两有序数组

作者头像
我是程序员小贱
发布2020-06-05 15:16:25
5930
发布2020-06-05 15:16:25
举报
文章被收录于专栏:面试经验贴

1 五点希望

  1. 希望准备春招的小伙伴每天能有所收获。
  2. 希望备战高三的学子稳扎稳打,调整好心态。
  3. 希望准备毕设的小伙伴早日结稿。
  4. 希望大家都健健康康。
  5. 希望早日战胜疫情。

1 Leetcode88 合并有序数组

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

说明:

初始化 nums1 和 nums2 的元素数量分别为 m 和 n。

你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。

示例:

输入:

nums1 = [1,2,3,0,0,0], m = 3

nums2 = [2,5,6], n = 3

输出: [1,2,2,3,5,6]

在此大家可以先思考1分钟

再看题解效果会更好哈

01 题目解析

方法1

先合并两数组再排序,此时的时间复杂度为O((n+m)log(n+m))。很明显压根没有用到题目中数组有序这一条件。(可参考下面py版本)

方法2

假设l1指针指向数组num1尾部,l2指针指向数组num2尾部,两者比较将大者放在num1尾部。时间复杂度为0(n+m).小伙伴可以思考下为什么是从后面开始比较,不是从前面开始比较呢?

02 动画演示

题目虽简单,细品出真理!一定掌握哈!

03 代码实现

1 c++版本

2 python版本

3 java版本

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我是程序员小贱 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 五点希望
    • 1 Leetcode88 合并有序数组
    • 01 题目解析
    • 02 动画演示
    • 03 代码实现
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档