给定两个有序整数数组 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 class Solution {public static void main(String[] args) {int[] nums1 = { 1, 2, 3, 0, 0, 0 };int m = 3;int[] nums2 = { 2, 5, 6 };int n = 3;merge(nums1, m, nums2, n);for (int num : nums1) {System.out.println(num);}}private static void merge(int[] nums1, int m, int[] nums2, int n) {int total = m + n;while (m > 0 && n > 0) { // 从后向前比较nums1和nums2大小if (nums1[m - 1] >= nums2[n - 1]) {nums1[--total] = nums1[--m];} else {nums1[--total] = nums2[--n];}}while (n > 0) { // 如果n先到达0就能直接得到合并好的数组;如果m先到达0,只需将n剩下的元素复制到nums1中即可nums1[--total] = nums2[--n];}}}

【算法系列之九】合并两个有序数组相关推荐

  1. 【算法系列之七】合并两个有序链表

    将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...

  2. 两个数组合并排序python_python算法题---合并两个有序数组

    leetcode-python-合并两个有序数组 今天第一次电话面试,有点紧张,所以自己感觉表现的不是很好,面试过程中面试官问到了两个算法题,都是leecode上面的题目,而且我都做过,但是当时一下子 ...

  3. 合并两个有序数组(初级算法合并两个有序数组)

    合并两个有序数组 1.题目: (合并两个有序数组) 2. 示例 3.解答步骤 4. 提交结果(提交用时和内存消耗) 声明: 题目均来自力扣,网址力扣官网, 如有侵权,告知必删! 本题地址: 点击我跳转 ...

  4. 算法刷题打卡第11天:合并两个有序数组

    合并两个有序数组 难度:简单 给你两个按非递减顺序排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目. 请你合并 nums2 到 ...

  5. LeetCode 88合并两个有序数组89格雷编码

    微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...

  6. 数组-合并两个有序数组(双指针,从后往前)

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

  7. LeetCode-双指针-88. 合并两个有序数组

    88. 合并两个有序数组 思路:归并排序,一长一短,肯定会有一个先放完,放完后把另一个拷贝过去即可. 为了避免覆盖所以从最后开始向前放最大的元素 class Solution {public:void ...

  8. 合并两个无序数组java_88. 合并两个有序数组

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

  9. 合并两个有序数组(双/三指针)

    今天写作业,合并两个有序数组a和b,时间复杂度要求O(n),空间复杂度要求O(1). 很快想到创建第三个数组c,用双指针初始化指向a和b的头元素,每次选择较大者在c上尾插进去之后,再后移相对应a或者b ...

  10. 双指针:88. 合并两个有序数组

    题目链接 88. 合并两个有序数组 解题思路 一. 合并数组后排序,时间复杂度为O((n+m)log(n+m)) 代码: 快排详解 class Solution {public void merge( ...

最新文章

  1. Slide:11g新特性-在线实施补丁online patching
  2. C#的参数类型:params、out和ref
  3. Opencv FFmpeg Ubuntu下编译问题
  4. 哈密尔顿算法matlab,复杂制造过程最优哈密尔顿圈算法的MATLAB仿真与分析.doc
  5. Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解...
  6. Linux系统登录相关(命令,应急响应可以用到)
  7. 08面向对象编程风格
  8. linux点阵数字图案,LED8X8点阵显示数字0-9数字
  9. poj 2231 Moo Volume 暴力一定超时啊
  10. 算法与数据结构 第2章 排序基础 上
  11. 为什么企业要做CMMI资质认证?
  12. 极大似然法python例子
  13. Python--Turtle钟表
  14. 网络术语,接口和协议简介
  15. 女朋友要求道歉100遍:普通人和程序员的做法分别是:
  16. (轉貼) 千頭萬緒 : 學習多執行緒程式設計的好書 (.NET) (Java)
  17. 开放地理空间信息联盟(OGC)简介
  18. 图片水印如何去除,怎样处理带水印的图片?
  19. 机器学习-朴素贝叶斯算法
  20. iOS设计模式之MVC

热门文章

  1. python分布式框架_高性能分布式执行框架——Ray
  2. android使碎片切换界面,玩转Android中的碎片Fragment
  3. ubuntu 开放端口_Masscan端口扫描工具使用小手册
  4. ARM uboot中的.lds
  5. linux无后缀名程序运行,linux – 如何在Ubuntu上运行无扩展(也许是ELF)文件?
  6. 【转】修饰符new将父类中的该方法隐藏掉有什么意义 不隐藏有什么弊端
  7. 【转】C++/CLI简介(什么是C++/CLI) -------C++/CLI 编程系列一
  8. python操作hive数据库代码_Python连接Hive操作数据库
  9. 【HDU - 5017】Ellipsoid(爬山算法,模拟退火,三分)
  10. 【CodeForces - 768C】Jon Snow and his Favourite Number(思维,技巧,套路,数学异或,循环节,trick)