欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

合并两个有序数组

程序员文章站 2022-06-23 08:38:07
题目描述给出两个有序的整数数组A和B,请将数组B合并到数组A中,变成一个有序的数组注意:可以假设A数组有足够的空间存放B数组的元素,A和B中初始的元素数目分别为m和n思路:从数组的末尾开始,这样不用提前额外开辟空间,同时要考虑其中一个数组为空的情况代码:class Solution {public: void merge(int A[], int m, int B[], int n) { int i = m-1, j = n-1, index = m+n-1;...

题目描述
给出两个有序的整数数组A和B,请将数组B合并到数组A中,变成一个有序的数组
注意:
可以假设A数组有足够的空间存放B数组的元素,A和B中初始的元素数目分别为m和n

思路:
从数组的末尾开始,这样不用提前额外开辟空间,同时要考虑其中一个数组为空的情况

代码:

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int i = m-1, j = n-1, index = m+n-1;
        while(i >= 0 && j>= 0)
        {
            if (A[i]>B[j])
                A[index--] = A[i--];
            else
                A[index--] = B[j--];
        }
        while(i>=0)
        {
            A[index--] = A[i--];
        }
        while(j>=0)
        {
            A[index--] = B[j--];
        }
    }
};

本文地址:https://blog.csdn.net/qq_44790423/article/details/109250427