IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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. 合并两个有序数组


要求把2中元素加入到1中并且最后是有序的

解题思路:

?一、直接把2中元素加入到1中元素后面在排序

        nums1[m:]=nums2    #将1中元素后面的0替换为2中元素
        nums1.sort()        #对整体排序

二、设置两个指针,在借助一个空列表,对1和2从第一个元素开始比较大小,把小的放进列表中,遍历完1,2数组后,将排好序的列表赋给1

        ls = []
        p1 ,p2 =0,0
        while p1 <m or p2<n :         #将元素比较大小合并到一个
            if p1 ==m:      #nums1没有了,就把2中的加入
                ls.append(nums2[p2])
                p2+=1
            elif p2==n:     #nums2没有了,就把1中的加入
                ls.append(nums1[p1])
                p1+=1
            elif nums1[p1] < nums2[p2]:
                ls.append(nums1[p1])
                p1+=1
            else:
                ls.append(nums2[p2])
                p2+=1
        nums1[:]=ls        #对nums1从头进行切片,把ls赋给它

三、设置两个指针,由于1中m后面是空,可以随意赋值,就可以直接在1上进行元素的加入排序

将1和2中的最大值作比较,就是最后一个元素比较,大的放到1中最后位置,每放一次,更新1中最后位置,直到1和2都从后往前遍历结束,顺序就排好了

        p1 = m-1        #1中末尾元素,
        p2 = n-1        #2中末尾元素
        p = m+n-1       #定义1中最后一个元素位置
        while  p1>=0 or p2>=0:   
            if p1<0:
                nums1[p] = nums2[p2]    #1中没有了,加入2
                p2-=1
            elif p2<0:
                nums1[p] = nums1[p1]    #2中无了,加入1
                p1-=1
            elif nums1[p1]<nums2[p2]:
                nums1[p] = nums2[p2]    
                p2-=1
            else:
                nums1[p] = nums1[p1]
                p1-=1
            p-=1        #更新末尾位置
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:25:47  更:2022-02-14 21:27:29 
 
开发: 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/26 17:47:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码