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

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

1

五点希望

  1. 希望准备春招的小伙伴每天能有所收获。

  2. 希望备战高三的学子稳扎稳打,调整好心态。

  3. 希望准备毕设的小伙伴早日结稿。

  4. 希望大家都健健康康。

  5. 希望早日战胜疫情。

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

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版本)

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

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

方法2

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

02

动画演示

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

03

代码实现

1

c++版本

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

2

python版本

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

3

java版本

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

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

1. 人人都能看懂的 6 种限流实现方案!

2. 一个空格引发的“*“

3大型网站架构演化发展历程

4Java语言“坑爹”排行榜TOP 10

5. 我是一个Java类(附带精彩吐槽)

6. 看完这篇Redis缓存三大问题,保你能和面试官互扯

7. 程序员必知的 89 个操作系统核心概念

8. 深入理解 MySQL:快速学会分析SQL执行效率

9. API 接口设计规范

10. Spring Boot 面试,一个问题就干趴下了!

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

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

扫码二维码关注我

·end·

—如果本文有帮助,请分享到朋友圈吧—

我们一起愉快的玩耍!

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

你点的每个赞,我都认真当成了喜欢