| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> Leetcode 88:合并两个有序数组 -> 正文阅读 |
|
[数据结构与算法]Leetcode 88:合并两个有序数组 |
题目描述:
示例 1:
示例 2:
示例 3:
?解法一:拷贝数组,排序 思路: 将两个数组合并成一个数组,然后排序。 代码如下:
另一种写法:
解法二:双指针 思路: 创建一个临时数组,通过双指针分别指向两个数组对元素大小进行判断,按照升序的方式将元素加入临时数组,最后再拷贝给nums1即可。 代码如下:
解法三:逆向双指针 思路: 解法二固然解决了问题,但是里面依旧占用了空间。观察nums1,发现其后半部分仅仅是起到了占位符的作用,因此可以通过逆向双指针的方式可以不使用额外的空间即可完成合并。设置指针index1 和index2分别指向 nums1 和 nums2 的最后面,从后面的元素值开始比较遍历,同时设置指针index指向 nums1 的最末尾,每次遍历比较值大小之后,则进行填充。当index1<0 时遍历结束,此时 nums2 中数据未拷贝完全,将其直接拷贝到 nums1 的前面,最后得到结果数组. 代码如下:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:43:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |