【算法系列之九】合并两个有序数组
给定两个有序整数数组 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->2->4, 1->3->4 输出:1->1->2- ...
- 两个数组合并排序python_python算法题---合并两个有序数组
leetcode-python-合并两个有序数组 今天第一次电话面试,有点紧张,所以自己感觉表现的不是很好,面试过程中面试官问到了两个算法题,都是leecode上面的题目,而且我都做过,但是当时一下子 ...
- 合并两个有序数组(初级算法合并两个有序数组)
合并两个有序数组 1.题目: (合并两个有序数组) 2. 示例 3.解答步骤 4. 提交结果(提交用时和内存消耗) 声明: 题目均来自力扣,网址力扣官网, 如有侵权,告知必删! 本题地址: 点击我跳转 ...
- 算法刷题打卡第11天:合并两个有序数组
合并两个有序数组 难度:简单 给你两个按非递减顺序排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目. 请你合并 nums2 到 ...
- LeetCode 88合并两个有序数组89格雷编码
微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...
- 数组-合并两个有序数组(双指针,从后往前)
题意: 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 ...
- LeetCode-双指针-88. 合并两个有序数组
88. 合并两个有序数组 思路:归并排序,一长一短,肯定会有一个先放完,放完后把另一个拷贝过去即可. 为了避免覆盖所以从最后开始向前放最大的元素 class Solution {public:void ...
- 合并两个无序数组java_88. 合并两个有序数组
88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2的 ...
- 合并两个有序数组(双/三指针)
今天写作业,合并两个有序数组a和b,时间复杂度要求O(n),空间复杂度要求O(1). 很快想到创建第三个数组c,用双指针初始化指向a和b的头元素,每次选择较大者在c上尾插进去之后,再后移相对应a或者b ...
- 双指针:88. 合并两个有序数组
题目链接 88. 合并两个有序数组 解题思路 一. 合并数组后排序,时间复杂度为O((n+m)log(n+m)) 代码: 快排详解 class Solution {public void merge( ...
最新文章
- Slide:11g新特性-在线实施补丁online patching
- C#的参数类型:params、out和ref
- Opencv FFmpeg Ubuntu下编译问题
- 哈密尔顿算法matlab,复杂制造过程最优哈密尔顿圈算法的MATLAB仿真与分析.doc
- Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解...
- Linux系统登录相关(命令,应急响应可以用到)
- 08面向对象编程风格
- linux点阵数字图案,LED8X8点阵显示数字0-9数字
- poj 2231 Moo Volume 暴力一定超时啊
- 算法与数据结构 第2章 排序基础 上
- 为什么企业要做CMMI资质认证?
- 极大似然法python例子
- Python--Turtle钟表
- 网络术语,接口和协议简介
- 女朋友要求道歉100遍:普通人和程序员的做法分别是:
- (轉貼) 千頭萬緒 : 學習多執行緒程式設計的好書 (.NET) (Java)
- 开放地理空间信息联盟(OGC)简介
- 图片水印如何去除,怎样处理带水印的图片?
- 机器学习-朴素贝叶斯算法
- iOS设计模式之MVC
热门文章
- python分布式框架_高性能分布式执行框架——Ray
- android使碎片切换界面,玩转Android中的碎片Fragment
- ubuntu 开放端口_Masscan端口扫描工具使用小手册
- ARM uboot中的.lds
- linux无后缀名程序运行,linux – 如何在Ubuntu上运行无扩展(也许是ELF)文件?
- 【转】修饰符new将父类中的该方法隐藏掉有什么意义 不隐藏有什么弊端
- 【转】C++/CLI简介(什么是C++/CLI) -------C++/CLI 编程系列一
- python操作hive数据库代码_Python连接Hive操作数据库
- 【HDU - 5017】Ellipsoid(爬山算法,模拟退火,三分)
- 【CodeForces - 768C】Jon Snow and his Favourite Number(思维,技巧,套路,数学异或,循环节,trick)