博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode88合并两个有序数组
阅读量:4957 次
发布时间:2019-06-12

本文共 1320 字,大约阅读时间需要 4 分钟。

未经博主同意,禁止瞎JB转载。

LeetCode88合并两个有序数组

https://leetcode-cn.com/problems/merge-sorted-array/description/

我的解法:

使用了python里面的insert函数,而且每次插入一个数字都要移动该数字后面所有的数字,比较麻烦,一些细节容易出错。

1 class Solution(object): 2     def merge(self, nums1, m, nums2, n): 3         """ 4         :type nums1: List[int] 5         :type m: int 6         :type nums2: List[int] 7         :type n: int 8         :rtype: void Do not return anything, modify nums1 in-place instead. 9         """10         i = 011         j = 012         while i < m+n and j < m:13             while nums2:14                 if nums1[i]>nums2[0]:15                     nums1.pop()16                     nums1.insert(i,nums2[0])17                     nums2.pop(0)18                     i = i + 119                 else:20                     break21             i = i + 122             j = j + 123         while nums2:24             nums1.pop()25             nums1.insert(i,nums2.pop(0))26             i = i + 1

 别人做得就既简单又暴力,既然前面位置不确定,那么可以从后向前比较啊。。。厉害。

1 while m>0 and n >0:2             if nums1[m-1] >= nums2[n-1]:3                 nums1[m+n-1] = nums1[m-1]4                 m = m -15             else :6                 nums1[m+n-1] = nums2[n-1]7                 n = n-18         if n > 0 :9             nums1[:n] = nums2[:n]

 

转载于:https://www.cnblogs.com/kianqunki/p/9775427.html

你可能感兴趣的文章
给java初学发者的一些建议,并对自身一年做一个总结。
查看>>
Android开发:Android虚拟机启动错误Can't find 'Linux version ' string in kernel image file
查看>>
2016.03.20
查看>>
href=#与href=javascriptvoid(0)的区别
查看>>
String 转化成java.sql.Date和java.sql.Time
查看>>
探寻读取文件的最快方法
查看>>
转:Eclipse中安装配置VSS
查看>>
[转]async & await 的前世今生(Updated)
查看>>
PostgreSQL本地化
查看>>
F: CET-4
查看>>
菜鸟对APP界面设计的一些心得小结
查看>>
nyoj 1208——水题系列——————【dp】
查看>>
ssh
查看>>
Spring Boot 集成 thymeleaf 模版引擎
查看>>
安装器---Inno Setup
查看>>
awk基本用法
查看>>
MySql5.7安装及配置
查看>>
选数字(贪心+枚举)
查看>>
js性能优化-事件委托
查看>>
用django创建一个简单的sns
查看>>