题目

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

说明:

初始化 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]

思路

由于最后的结果保存在nums1中,且其空间足够,因此可以从最后一位开始反向排序

实现

class Solution:
def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
"""
Do not return anything, modify nums1 in-place instead.
"""
p1 = m - 1
p2 = n - 1
p = m + n - 1
while p1 >= 0 and p2 >= 0:
if nums1[p1] > nums2[p2]:
nums1[p] = nums1[p1]
p1 -= 1
else:
nums1[p] = nums2[p2]
p2 -= 1
p -= 1
if p2 >=0:
nums1[:p2 + 1] = nums2[:p2 + 1]

最新文章

  1. 浅谈UML的概念和模型之UML九种图
  2. Spring——(一)IoC
  3. js-FCC算法Friendly Date Ranges
  4. 融云官方cordova示例使用指南
  5. Linux的查找命令
  6. C++11 常用语法
  7. NDK: unable to watch local variables after using GCC4.8
  8. 苹果iphone4s完美越狱后破解4g网络方法
  9. oracle查询和断开用户session
  10. html5的自定义data-*属性与jquery的data()方法的使用
  11. php的模板引擎
  12. page cache和buffer cache
  13. Bootstrap禁用响应式布局
  14. mysql删除和修改数据报错1175
  15. Delphi拷贝目录(含子目录)的方法
  16. MySQL Q&A 解析binlog的两个问题
  17. IntelliJ Idea 2017 注册码 免费激活方法
  18. 分布式锁三种实现方式(DB,redis,zookeeper)比较
  19. EL表达式和JSTL标签库
  20. window.onload和document.ready

热门文章

  1. Jenkins(Extended E-mail Notification)邮箱配置正确但是并没有发送邮件
  2. 06 大数据CentOS6.5mini安装与网络配置
  3. pandas | 详解DataFrame中的apply与applymap方法
  4. 栈及其简单应用(python代码)
  5. jquery—实现能滚动的选项卡效果
  6. docker基础入门理解
  7. Java并发--三大性质
  8. oracle 分页的两种方式
  9. 极简 Node.js 入门 - 3.3 文件写入
  10. 个人项目wc