美文网首页LeetCode
LeetCode 面试题 10.01. 合并排序的数组

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

作者: 桐桑入梦 | 来源:发表于2020-03-03 11:26 被阅读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++];
        }
    }
    
    运行结果

    相关文章

      网友评论

        本文标题:LeetCode 面试题 10.01. 合并排序的数组

        本文链接:https://www.haomeiwen.com/subject/wprqlhtx.html