【Lintcode】64。ソートされた配列をマージ

タイトルアドレス:

https://www.lintcode.com/problem/merge-sorted-array/description

2つの順序付けられた配列がある場合 B B 、それらを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];
        }
    }
}

時間の複雑さ O(n)

公開された388元の記事 ウォンの賞賛0 ビュー10000 +

おすすめ

転載: blog.csdn.net/qq_46105170/article/details/105427922