Leetcode刷题笔记

第三十二天 Merge Sorted Array

2018-09-23  本文已影响4人  业余马拉松选手

合并两个有序数组

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

非常典型的“归并”排序的思路,当然归并要从尾巴开始,因为是要把nums2归并到nums1里面,所以要特别考虑一下归并到当nums1没有数据的情况,其实就是把nums2的数据都贴进去

对于python的那种“神奇”的三元计算符还是不太会,就干脆写了一个if/else了

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.
        """
        index = m + n -1
        i = m-1
        j = n-1
        while j>=0:
            if i<0:
                nums1[index] = nums2[j]
                j -= 1
            else:
                if nums1[i] > nums2[j]:
                    nums1[index] = nums1[i]
                    i-=1
                else:
                    nums1[index] = nums2[j]
                    j-=1
            index -= 1

代码不够pythonic,嗯,😅

上一篇 下一篇

猜你喜欢

热点阅读