6. 合并排序數(shù)組

描述

合并兩個排序的整數(shù)數(shù)組A和B變成一個新的數(shù)組。

樣例

給出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]

挑戰(zhàn)

你能否優(yōu)化你的算法,如果其中一個數(shù)組很大而另一個數(shù)組很小?

代碼

public class Solution {
    /*
     * @param A: sorted integer array A
     * @param B: sorted integer array B
     * @return: A new sorted integer array
     */
    public int[] mergeSortedArray(int[] A, int[] B) {
        if (A == null || B == null) {
            return null;
        }
        
        int[] results = new int[A.length + B.length];
        int i = 0, j = 0, index = 0;
        while (i < A.length && j < B.length) {
            if (A[i] < B[j]) {
                results[index] = A[i];
                i++;
            // A[i] == B[j]情況分兩次記錄,先記錄B[j],j 變化 i 不變再記錄A[i]
            } else {
                results[index] = B[j];
                j++;
            }
            index++;
        }

        // 用while循環(huán),不能用if
        while (i < A.length) {
            results[index] = A[i];
            i++;
            index++;
        }
        while (j < B.length) {
            results[index] = B[j];
            j++;
            index++;
        }
        return results;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容