タイトルアドレス:
https://www.lintcode.com/problem/merge-sorted-array/description
2つの順序付けられた配列がある場合 と 、それらを1つにマージするように要求し、直接マージする 、タイトル保証 は十分なスペースがあります。後ろから前に直接入力します。コードは次のとおりです。
public 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
*/
public void mergeSortedArray(int[] A, int m, int[] B, int n) {
// write your code here
int ind = m + n - 1;
while (m > 0 && n > 0) {
if (A[m - 1] >= B[n - 1]) {
A[ind--] = A[m-- - 1];
} else {
A[ind--] = B[n-- - 1];
}
}
while (m > 0) {
A[ind--] = A[m-- - 1];
}
while (n > 0) {
A[ind--] = B[n-- - 1];
}
}
}
時間の複雑さ 。