题目:合并两个有序数组

给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 使得 num1 成为一个有序数组。

说明:

  • 初始化 nums1 和 nums2 的元素数量分别为 m 和 n
  • 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。

示例:

输入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3 输出: [1,2,2,3,5,6]

代码实现:

 public static void merge(int[] nums1, int m, int[] nums2, int n) {
int[] newArray = nums1;
for (int i = 0; i < nums1.length; i++) {
newArray[i] = nums1[i];
}
for (int i = 0; i < nums2.length; i++) {
newArray[m + i] = nums2[i];
}
nums1 = newArray;
Arrays.sort(nums1); } /**
* 用时最少
*/
public static void merge2(int[] nums1, int m, int[] nums2, int n) {
// 最后一个元素的索引
int index = m + n - 1;
// A 数组中最后一个元素索引
int indexA = m - 1;
// B 数组中最后一个元素索引
int indexB = n - 1;
for (int i = index; i >= 0; i--) {
// A数组中最后一个元素索引 或 B数组中最后一个元素索引 等于-1,跳出循环
if (indexA == -1 || indexB == -1) {
break;
}
// 如果A数组最后一个元素 大于 B数组最后一个元素
if (nums1[indexA] > nums2[indexB]) {
// 把A数组(A[m-1])最后一个元素赋值给A数组A[m+n-1]最后一个元素
nums1[i] = nums1[indexA];
// A数组最后一个索引 减1
indexA--;
} else {
// 否则把B数组最后一个元素赋值给A数组最后一个元素
nums1[i] = nums2[indexB];
// B数组最后一个索引 减1
indexB--;
}
}
// 如果A数组中元素都大于B数组中的元素,执行下面代码
while (indexB >= 0) {
nums1[indexB] = nums2[indexB];
indexB--;
} }

代码地址:https://gitee.com/hapzxb/LeetCode/blob/master/leetcode/src/main/java/com/hapzxb/leetcode/array/Solution.java

leetcode-只出现一次的数字合并两个有序数组的更多相关文章

  1. Leecode刷题之旅-C语言/python-88合并两个有序数组

    /* * @lc app=leetcode.cn id=88 lang=c * * [88] 合并两个有序数组 * * https://leetcode-cn.com/problems/merge-s ...

  2. [LeetCode每日一题]88. 合并两个有序数组

    [LeetCode每日一题]88. 合并两个有序数组 问题 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 初始化 n ...

  3. leetcode 88. C++ 合并两个有序数组

    Leetcode 88. 合并两个有序数组 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 ...

  4. 每日一道 LeetCode (19):合并两个有序数组

    每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...

  5. 【python】【补】Leetcode每日一题-合并两个有序数组

    [python]Leetcode每日一题-合并两个有序数组 [题目描述] 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组 ...

  6. Leetcode#88. Merge Sorted Array(合并两个有序数组)

    题目描述 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m ...

  7. Leetcode 88 合并两个有序数组 Python

    合并两个有序数组 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分 ...

  8. Java实现 LeetCode 88 合并两个有序数组

    88. 合并两个有序数组 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元 ...

  9. 【LeetCode】88. 合并两个有序数组

    88. 合并两个有序数组 知识点:数组:排序:双指针: 题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 ...

随机推荐

  1. springboot 共享session

    1.pom添加jar依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...

  2. mysql 重置密码

    mysql 重置密码,跳过登录修改密码: # centos 上mysql 已经改名了,启动服务的时候注意是mariadb 了!!!!! # systemctl stop mariadb # syste ...

  3. HTML5+CSS3-学习总结

    这是第三次学标签和样式了,虽然距离上次差不多2年.可学过的东西依旧还在. 体会 1.  相对于前端技术,基础还是很重要的. 2.  虽然很繁多.并不是杂乱无章的. 3.  HTML5在新增的几个标签, ...

  4. docker方式mysql设置字符集

    在docker上部署mysql时,mysql的默认字符集是latin1,这样如果日后有中文会出现异常,不能存储等,因为latin1是不支持中文的. 所以需要将字符集调整为utf8. 方法: 首先启动m ...

  5. kalilinux渗透测试笔记

    声明:本文理论大部分是苑房弘kalilinux渗透测试的内容 第五章:基本工具 克隆网页,把gitbook的书记下载到本地 httrack "http://www.mybatis.org/m ...

  6. 【干货】使用SIFT取证工作站校验文件哈希----哈希一致则文件具备完整性

    此实验来源于课程活动部分:第1单元:计算机取证基础  1.3活动和讨论  活动:* nix系统中文件的基本散列 注意:本博客更多的信息可能没有交代完善,有的人看不明白是因为,我知道,但是没有写出来.本 ...

  7. CentOS 安装 Docker

    前言:其实安装步骤Docker官网很详细,如果有些人英文不好看的比较慢的话就可以直接看我的,我也是摘自官网,具体步骤如下 1. 安装依赖包 $ sudo yum install -y yum-util ...

  8. C# 常用类型校验Validate

    using System.Text; using System.Text.RegularExpressions; namespace 落地页测试代码 { public class Validate { ...

  9. axios 拦截器统一在接口增加时间戳参数,防止走缓存。

    request.interceptors.request.use( config => { if (config.method == 'post') { config.data = { ...c ...

  10. IDEA适合的插件

    一:安装方法 在线安装 二.    官网插件地址 http://plugins.jetbrains.com/ 三.常用插件 一. )    Alibaba Java Coding Guidelines ...