未经博主同意,禁止瞎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]