博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【LeetCode】88. Merge Sorted Array (2 solutions)
阅读量:5745 次
发布时间:2019-06-18

本文共 1477 字,大约阅读时间需要 4 分钟。

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.

 

解法一:从前往后,小的排最前。每次插入一个B,A需要整体后移。

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

 

解法二:从后往前,大的排最后。不需要多余的移动。

class Solution {public:    void merge(int A[], int m, int B[], int n) {        int indA = m-1;        int indB = n-1;        for(int i = m+n-1; i >= 0; i --)        {            if(indA < 0)            {
// A finished A[i] = B[indB --]; } else if(indB < 0) {
// B finished A[i] = A[indA --]; } else { if(A[indA] >= B[indB]) A[i] = A[indA --]; else A[i] = B[indB --]; } } }};

转载地址:http://ljxzx.baihongyu.com/

你可能感兴趣的文章
【PKUWC2018】猎人杀
查看>>
Hive数据压缩
查看>>
POj1611:The Suspects(并查集)
查看>>
sql
查看>>
浅拷贝&深拷贝
查看>>
.NET 分发包的存放路径
查看>>
Java注解格式
查看>>
可视化库-seaborn-多变量分析绘图(第五天)
查看>>
pycharm常用快捷键和自定义快捷键
查看>>
pixel2坑
查看>>
sqlserver 如何备份或恢复一个表_MS SQL Server
查看>>
将Access、Excel数据导出到MSSQL/使用 OpenRowSet 和 OpenDataSource 访问 Excel 97-2007
查看>>
KeepAlived主备/主主模型高可用Nginx
查看>>
C++clock()延时循环
查看>>
电脑环境设置
查看>>
CentOS mini版安装后增加gcc编译环境
查看>>
如何用ABP框架快速完成项目(3) - 为什么要使用ABP和ABP框架简介
查看>>
vue2.0实现页面刷新时某个input获得focus
查看>>
iOS开发网络数据之AFNetworking使用 分类: ios技术 ...
查看>>
SpringCloud-Netflix项目组件功能作用描述
查看>>