LeetCode

LeetCode 面试题 10.01. 合并排序的数组

2020-03-03  本文已影响0人  桐桑入梦

给定两个排序后的数组 AB,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。

初始化AB 的元素数量分别为 mn

示例:

输入:
A = [1,2,3,0,0,0], m = 3
B = [2,5,6], n = 3

输出: [1,2,2,3,5,6]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sorted-merge-lcci

class Solution {
    public void merge(int[] A, int m, int[] B, int n) {
        for(int i=A.length-1;i>=A.length-m;i--) A[i] = A[i-A.length+m];
        int k = 0 , i = 0 , j = 0;
        while(i<m && j<n){
            if(A[i+A.length-m] < B[j]) A[k++] = A[A.length-m+(i++)];
            else A[k++] = B[j++]; 
        }  
        while(i<m)  A[k++] = A[A.length-m+(i++)];
        while(j<n)  A[k++] = B[j++];
    }
}
运行结果
上一篇下一篇

猜你喜欢

热点阅读