博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Leetcode] Merge Sorted Array 合并数组
阅读量:5968 次
发布时间:2019-06-19

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

Merge Sorted Array

最新更新请见:

Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

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

倒序存储

复杂度

时间 O(N+M) 空间 O(1)

思路

提示第一个数组的大小足以装两个数组,所以自然想到把两个数组都合并到第一个数组中,但是第一个数组前面都是有用的信息,如果直接从前面加,我们得将后面所有的数都位移。但是如果我们从后往前,合并到第一个数组的最后,则不用位移。

注意

将m和n都先减1,用m和n来代表下标,避免两个数组为空时抛出空指针异常。

代码

public class Solution {    public void merge(int[] nums1, int m, int[] nums2, int n) {        m = m - 1;        n = n - 1;        int i = m + n + 1;        while(m >= 0 || n >= 0){            if(m < 0){                nums1[i--] = nums2[n--];            } else if(n < 0) {                nums1[i--] = nums1[m--];            } else {                nums1[i--] = nums1[m] > nums2[n] ? nums1[m--] : nums2[n--];            }        }    }}

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

你可能感兴趣的文章
Centos下基于Hadoop安装Spark(分布式)
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
jquery 操作iframe、frameset
查看>>
解决vim中不能使用小键盘
查看>>
jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs
查看>>
我的友情链接
查看>>
批量删除用户--Shell脚本
查看>>
Eclipse Java @Override 报错
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
mysql多实例实例化数据库
查看>>
javascript 操作DOM元素样式
查看>>
HBase 笔记3
查看>>