题号:88 题目
问题描述:
Given two sorted integer arrays A and B, merge B into A as one sorted array.
Note:
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.
Tags: Arrays, Tow Pointers
这里假设数组A足够大,那么从从后往前遍历即可。复杂度0(n)
代码如下:
/**
* Date:2015-02-28
* Number:88
* Author:Mandy
* */
public class Solution {
public void merge(int A[], int m, int B[], int n) {
int indexA=m-1,indexB=n-1,current=m+n-1;
while(indexA>=0&&indexB>=0){
if(A[indexA]>B[indexB]){
A[current--]=A[indexA--];
}else{
A[current--]=B[indexB--];
}
}
while(indexB>=0) A[current--]=B[indexB--];
}
}