Python每日一练第4天——合并两个有序数组

2023-11-15

合并两个有序数组

给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 使 nums1 成为一个有序数组。

初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。

示例 1:

输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
输出:[1,2,2,3,5,6]

示例 2:

输入:nums1 = [1], m = 1, nums2 = [], n = 0
输出:[1]

提示:

  • nums1.length == m + n
  • nums2.length == n
  • 0 <= m, n <= 200
  • 1 <= m + n <= 200
  • -109 <= nums1[i], nums2[i] <= 109

题目解析

第一眼看到这题感到莫名的熟悉,仔细一看以前在LeetCode做过

下面代码的核心思想是要用逆向双指针去解决问题

通过对两个数组的从最后一位开始进行比较,谁大谁排在后面。

代码

class Solution(object):
    def merge(self, nums1, m, nums2, n):
        """
        :type nums1: List[int]
        :type m: int
        :type nums2: List[int]
        :type n: int
        """
        p1, p2 = m - 1, n - 1
        pos = m + n - 1
        while p1 >= 0 and p2 >= 0:
            if nums1[p1] >= nums2[p2]:
                nums1[pos] = nums1[p1]
                p1 -= 1
            else:
                nums1[pos] = nums2[p2]
                p2 -= 1
            pos -= 1
        while p2 >= 0:
            nums1[pos] = nums2[p2]
            p2 -= 1
            pos -= 1
        return nums1


# %%
s = Solution()
print(s.merge(nums1=[1, 2, 3, 0, 0, 0], m=3, nums2=[2, 5, 6], n=3))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python每日一练第4天——合并两个有序数组 的相关文章

随机推荐

  • python采集高德地图上商家信息代码(亲测OK)

    项目场景 项目场景 我需要采集本地的商户信息 获得相关的行业信息数据 分析一下 描述 我之前有想过从企查查拿企业信息 但是我想获得更多的个体商户信息 想对当前城市做一个数据统计 分析出到底哪一行业更多 更有热度 然后可以帮我去定位到如果我去
  • 你所不知道的抖音赚钱方法,原来可以这样玩!

    这篇文章略长 但是承载了非常多的干货 望你认真看完 我相信在18年没有谁不知道抖音的火爆程度 当你出行或者朋友聚会的时候 总能看到低头刷抖音的身影 而在大街逛街或者公园散步的时候 也随处可见随着魔性的音乐释放青春活力的 姐 而各种音乐播放软
  • 使用Clang作为编译器 —— Clang 语言扩展

    1 介绍 本文档描述了 Clang 提供的语言扩展 除了这里列出的语言扩展之外 Clang 还旨在支持广泛的 GCC 扩展 有关这些扩展的更多信息 请参阅 GCC手册 2 特性检查宏 语言扩展可能非常有用 但只有在您知道可以依赖它们的情况下
  • 服务管理工具systemctl

    服务管理工具systemctl Linux服务管理两种方式 service 和 systemctl systemd 是Linux系统最新的初始化系统 init 作用是提高系统的启动速度 尽可能启动较少的进程 尽可能更多进程并发启动 syst
  • 单元测试系列之九:Sonar 常用代码规则整理(一)

    更多原创测试技术文章同步更新到微信公众号 三国测 敬请扫码关注个人的微信号 感谢 摘要 公司部署了一套sonar 经过一段时间运行 发现有一些问题出现频率很高 因此有必要将这些问题进行整理总结和分析 避免再次出现类似问题 作者原创技术文章
  • 毕业设计 Spring Boot的网上购物商城系统(含源码+论文)

    文章目录 1 项目简介 2 实现效果 2 1 界面展示 3 设计方案 3 1 概述 3 2 系统开发流程 3 3 系统结构设计 4 项目获取 1 项目简介 Hi 各位同学好呀 这里是M学姐 今天向大家分享一个今年 2022 最新完成的毕业设
  • 学1个月爬虫就月赚6000?别被骗了,老师傅告诉你爬虫的真实情况

    这是我前几天看到的一个真实事件 也是我写这篇文章的缘由 前几天有粉丝跟我反馈说 某机构的人跟他说学爬虫1个月就能接单 让这小伙子去报名那个机构的爬虫课程 学完之后1个月就能把6000多的学费赚回来 可能是因为我和粉丝的交流比较多 所以小伙子
  • RuntimeError: CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling `cublasGemmStridedBatchedExFix

    记录一个问题 由于版本问题导致的 CUBLAS STATUS INVALID VALUE 参考https discuss pytorch org t runtimeerror cuda error cublas status invalid
  • QT技巧 - QT中如何清空layout中所有控件

    delete之前必须setParent NULL 否则程序可能出现意想不到且很难定位的错误 切记 切记 切记 1 前言 layout中的控件可以通过addWidget增加 但是有个问题 增加之后如何删除 并且使其立即生效是一个问题 2 实现
  • 手机端linux练习,Linux认证模拟练习题及答案

    1 设计一个shell程序 在每月第一天备份并压缩 etc目录的所有内容 存放在 root bak目录里 且文件名为如下形式yymmdd etc yy为年 mm为月 dd为日 Shell程序fileback存放在 usr bin目录下 参考
  • c++类模板与友元

    友元 前置声明 在Blob中声明友元所需要的 为了引用模板的一个特定实例 必须首先声明模板自身 template
  • 树莓派RP2040开发板自制24通道 逻辑分析仪

    目录 前言 1 准备工作和前提条件 1 1 Raspberry Pi Pico RP2040板子一个 1 2 Firmware LogicAnalyzer 5 0 0 0 PICO uf2固件 1 3 LogicAnalyzer 5 0 0
  • 墨者学院-身份认证失效漏洞 解题思路

    题目要求 登陆马春生的账号 解题步骤 进去后首先看到提示 test test 登陆后 我们抓个包看看有没有啥信息 开启BP后我们直接在页面右键刷新刷新 好像没啥信息 点一下Forward 有了 20138880322 把末尾改个数字试一试
  • 微信小程序报错 Invalid attempt to destructure non-iterable instance.

    遇到的问题 TypeError Invalid attempt to destructure non iterable instance In order to be iterable non array objects must have
  • 腾讯/阿里/百度 BAT人才体系的职位层级、薪酬、晋升标准

    互联网圈有这么一句话 百度的技术 阿里的运营 腾讯的产品 那么代表互联网三座大山的BAT 内部人才体系有什么区别呢 今天智小培就带领大家看一看 腾讯 1 职级 腾讯职级体系分6级 最低1级 最高6级 同时按照岗位又划分为四大通道 内部也叫
  • 高等数值计算方法学习笔记第4章第二部分【数值积分(数值微分)】

    高等数值计算方法学习笔记第4章第二部分 数值积分 数值微分 四 龙贝格求积公式 第三次课 1 梯形法的递推化 变步长求积法 2 龙贝格算法 五 高斯求积公式 1 一般理论 1定义1例题 2 构造高斯求积公式方法 二 定理加证明 5 Gaus
  • 如何将.sql文件导入到mysql中

    第一 进入mysql数据库 在cmd中输入mysql u root p然后输入password 第二 新建一个数据库 可以与你想要导进来库的名字相同 create database test db 第三 进入所建立的空数据库test db
  • 现在的00后,真是卷死了呀,辞职信已经写好了·····

    都说00后躺平了 但是有一说一 该卷的还是卷 这不 三月份春招我们公司来了个00后 工作没两年 跳槽到我们公司起薪23K 都快接近我了 后来才知道人家是个卷王 从早干到晚就差搬张床到工位睡觉了 最近和他聊了一次天 原来这位小老弟家里条件不太
  • 排序算法(2)

    本文介绍插入排序和希尔排序 插入排序是较为常见的排序算法 希尔排序也是基础的排序算法 废话不多说 具体来看一下两种算法 插入排序 插入排序的基本思想是拿到下一个插入元素 在已经有序的待排数组部分找到自己的位置 然后进行数据的移动 完成该元素
  • Python每日一练第4天——合并两个有序数组

    合并两个有序数组 给你两个有序整数数组 nums1 和 nums2 请你将 nums2 合并到 nums1 中 使 nums1 成为一个有序数组 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 你可以假设 nums1 的空