leetcode之Merge Sorted Array

来源:互联网 发布:日语学习软件 编辑:程序博客网 时间:2024/06/06 23:54

这题虽然简单,但是仔细写写也有很多的小细节注意。题目本身是将2个sorted list合并成一个sorted list。是需要排序的。然后只能直接在nums1上改。m, n并不是总长度,而是取这么长的一段出来,所以nums1需要将后面的全部去掉。代码如下:

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.        """        if m == 0:            for i in range(len(nums1))[::-1]:                del nums1[i]            for i in range(len(nums2)):                nums1.append(nums2[i])        else:            if n != 0:                for i in range(m, len(nums1))[::-1]:                    del nums1[i]                i = 0                j = 0                while True:                    if nums1[i] <= nums2[j]:                        if i != len(nums1) - 1:                            i = i + 1                        else:                            for k in range(j, len(nums2)):                                nums1.append(nums2[k])                            break                    else:                        nums1.insert(i, nums2[j])                        if j == len(nums2) - 1:                            break                        j = j + 1                        i = i + 1

0 0
原创粉丝点击