[LeetCode]Merge Sorted Array

来源:互联网 发布:服务器机柜和网络机柜 编辑:程序博客网 时间:2024/06/07 22:51

题目:

Merge Sorted Array

 

Given two sorted integer arrays A and B, merge B into A as one sorted array.

Note:
You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.


来源:https://oj.leetcode.com/problems/merge-sorted-array/


思路:

从后往前合,可以避免不断的移动数据,只要一次遍历。

C++ AC代码:

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

运行时间 12ms


0 0