[Lintcode]64. Merge Sorted Array

64. Merge Sorted Array

Description

Given two sorted integer arrays A and B, merge B into A as one sorted array.

Example
A = [1, 2, 3, empty, empty], B = [4, 5]

After merge, A will be filled as [1, 2, 3, 4, 5]

Notice
You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.

我的代码

class Solution:
    """
    @param: A: sorted integer array A which has m elements, but size of A is m+n
    @param: m: An integer
    @param: B: sorted integer array B which has n elements
    @param: n: An integer
    @return: nothing
    """
    def mergeSortedArray(self, A, m, B, n):
        # write your code here
        while m>0 and n>0:
            if A[m-1] > B[n-1]:
                A[m+n-1] = A[m-1]
                m -= 1
            else:
                A[m+n-1] = B[n-1]
                n -= 1
        if n>0:
            A[:n] = B[:n]

思路:

  • 时间复杂度: O()
  • 出错:2
    忘记减一

一开始想,直接在A上操作会不会覆盖有用的信息。
因为有足够的空间,如果覆盖,这部分肯定已经到后面去了。

posted @ 2019-01-07 21:20  siriusli  阅读(87)  评论(0编辑  收藏  举报