【题目描述】
Given two sorted integer arrays A and B, merge B into A as one sorted array.
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.
合并两个排序的整数数组A和B变成一个新的数组。
注意:你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。
【题目链接】
www.lintcode.com/en/problem/merge-sorted-array/
【题目解析】
直观思路显然是双指针i, j同时扫描A, B,选min(A[i], B[j])作为下一个元素插入。但是只能利用A后面的空间来插入,这样就很不方便了。
反向思路,merge后的数组一共有m+n个数。i, j从A, B尾部扫描,选max(A[i], B[j])插入从m+n起的尾部。这样也可以防止插入到A原来数字的范围内时,overwrite掉A原来的数。
【参考答案】
网友评论