zoukankan      html  css  js  c++  java
  • python合并两个有序数组

    class Solution():
        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  # 合并之后的nums1最大的下标
            # 个数减去1得到下标
            m -= 1
            n -= 1
            while m >= 0 and n >= 0:
                # 如果nums1倒数最大 大于nums2倒数最大
                # 第一轮nums1的5和nums2的6
                # 第二轮nums1的5和nums2的4比较
                if nums1[m] > nums2[n]:
                    # nums1的5放到
                    nums1[index] = nums1[m]
                    #比nums1较下一个
                    m -= 1
                else:
                    # 第一轮的nums2的6放到nums1的最后
                    nums1[index] = nums2[n]
                    # 比较nums2的下一个
                    n -= 1
                # 最大索引减一放剩下数组里的大数
                index -= 1
            if m < 0:
                #说明nums1的数都大于nums2
                nums1[:n + 1] = nums2[:n + 1]
    
    
    if __name__ == '__main__':
        nums1 = [1, 3, 4, 5, 0, 0, 0]
        nums2 = [2, 4, 6]
        s = Solution()
        s.merge(nums1, 4, nums2, 3)
        print nums1
    
    
  • 相关阅读:
    组合数学
    组合数学
    组合数学
    组合数学 + STL --- 利用STL生成全排列
    组合数学
    数论
    给xcode项目重命名
    iOS中动态注入JavaScript方法。动态给html标签添加事件
    swift
    swift
  • 原文地址:https://www.cnblogs.com/c-x-a/p/15261999.html
Copyright © 2011-2022 走看看