LeetCode----Merge Sorted Array
2015-09-06 15:30
288 查看
Merge Sorted Array
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.
分析:
合并两个已经有序的数组,本来是按归并排序中合并子数组的思路来,用Python写的,提交一直不对,后来发现题目要求是排序后nums1被修改了,即在函数运行后,nums1保存修改的结果。想了一下,Python并没有类似C++的引用,以为需要换种语言实现了。但是,查看了Discuss后发现居然有人是用Python提交的,原来我忘了Python中的赋值以及拷贝的东西了,有一篇博客可以好好学习一下。以后有时间还是多看看Dicuss里的东西,里面总有一些实现优雅简短的代码出现。
代码1:
class Solution(object):
def merge(self, nums1, m, nums2, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: void Do not return anything, modify nums1 in-place instead.
"""
i = j = 0
while i < (m+j) and j < n:
if nums2[j] <= nums1[i]:
nums1.insert(i, nums2[j])
j += 1
i += 1
else:
i += 1
nums1[m+j:] = nums2[j:]
nums1[:] = nums1[: m+n]
print nums1
代码2:
class Solution(object):
def merge(self, nums1, m, nums2, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: void Do not return anything, modify nums1 in-place instead.
"""
nums1[m:] = nums2[:n]
nums1.sort()
相关文章推荐
- 用VBScript写合并文本文件的脚本
- oracle列合并的实现方法
- 使用BAT一句话命令实现快速合并JS、CSS
- SQL 合并多行记录的方法总汇
- C#自适应合并文件的方法
- GridView单元格合并
- 如何合并多个 .NET 程序集
- 使用UglifyJS合并/压缩JavaScript的方法
- 高性能WEB开发 JS、CSS的合并、压缩、缓存管理
- 多个js与css文件的合并方法详细说明
- 使用不同的方法结合/合并两个JS数组
- 合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
- 用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
- oracle实现多行合并的方法
- php分割合并两个字符串的函数实例
- PHP合并静态文件详解
- Windows下使用apache模块实现合并多个js、css提高网页加载速度
- JavaScript及jquey实现多个数组的合并操作
- php合并数组中相同元素的方法
- php数组合并与拆分实例分析