88. 合并两个有序数组

给你两个有序整数数组 nums1nums2,请你将 nums2 合并到 nums1使 nums1 成为一个有序数组。

说明:

初始化 nums1nums2的元素数量分别为 mn 。 你可以假设 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]

题解:

本题思路就是比较数组两个元素大小,然后从后往前遍历即可。这里需要注意,如果两个数组长度不一样,那么当任意一个数组遍历完后,我们只需将另一个数组中的元素按序插入即可。

具体代码如下:

class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int index = m + n - 1;m--;n--;while (m >= 0 && n >= 0) {if (nums1[m] > nums2[n]) {nums1[index--] = nums1[m--];} else {nums1[index--] = nums2[n--];}}//如果一个数组已经遍历完了,将另一个数组中的元素直接替换nums1之前的元素即可if (m >= 0) {while (m >= 0) {nums1[index--] = nums1[m--];}} else {while (n >= 0) {nums1[index--] = nums2[n--];}}}
}

合并两个无序数组java_88. 合并两个有序数组相关推荐

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

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

  2. 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。

    /*** 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2.请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))=Ologm*Ologn.你可以假设 ...

  3. 合并两个有序数组为一个新的有序数组

    题目:有两个有序数组a,b,现须要将其合并成一个新的有序数组. 简单的思路就是先放到一个新的数组中,再排序.可是这种没体现不论什么算法,这里考的不是高速排序等排序算法.关键应该是怎样利用有序已知这个条 ...

  4. 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...

  5. leetcode C++ 4. 寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log

    一.概述: 这道题思路其实蛮简单的,就是边界太难考虑了,所以一直没能通过,写了好长的代码考虑边界,然后看到一个大神写的代码: https://leetcode-cn.com/problems/medi ...

  6. java中有序数组比无序数值好_java面向对象的有序数组和无序数组的比较

    packageaa;classArray{//定义一个有序数组 private long[] a;//定义数组长度 private intnElems;//构造函数初始化 public Array(i ...

  7. 百度:在O(1)空间复杂度范围内对一个数组中前后连段有序数组进行归并排序

    一.题目理解 题目:数组al[0,mid-1]和al[mid,num-1]是各自有序的,对数组al[0,num-1]的两个子有序段进行merge,得到al[0,num-1]整体有序.要求空间复杂度为O ...

  8. 将字符串转换为数组_LeetCode 树 108.将有序数组转换为二叉搜索树

    7(108) 将有序数组转换为二叉搜索树 描述 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 ...

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

    void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){          //定义,让数组从后往 ...

最新文章

  1. ZOJ Problem Set - 1048 Financial Management
  2. Ajax -get 请求
  3. Hyperledger Fabric Chaincode 开发
  4. 构建闭环式的研发运维体系----云效EDAS DevOps
  5. redis基本类型和使用
  6. IDEA对tomcat远程debug
  7. 剑指offer面试题32 - I. 从上到下打印二叉树(二叉树)(BFS)
  8. iOS图形处理概论:OpenGL ES,Metal,Core Graphics,Core Image,GPUImage,OpenCV等
  9. Rust: HDF5文件的处理探索(to be continued.......)
  10. qam映射c程序_DVB-C系统中QAM调制与解调仿真
  11. 关于二进制补码+CS5463
  12. php trying to get,php 做微信认证登陆 返回错误 Trying to get property of non-object
  13. 实验项目一 俄罗斯方块游戏
  14. Ubuntu下搜狗輸入法不能输入汉字
  15. 河北省计算机对口试题,河北省对口计算机试题及答案.doc
  16. opc ua 用哪种语言编写_OPC UA是什么 OPC UA简介
  17. 离散数学在计算机科学中的应用
  18. 20189220 余超《Linux内核原理与分析》第六周作业
  19. JAVA校招基础面试题
  20. 使用echarts插件时,发现y值相同,但不是同一条直线,解决方法

热门文章

  1. 使用VoiceFliter-Lite改进设备上的语音识别
  2. LiveVideoStack线上分享第五季(十二):移动端多种通话场景统一技术方案实践...
  3. 喜马拉雅贺雯迪:基于端到端TTS实现更具生动、富有情感的语音合成表现
  4. C/C++学习之路: STL
  5. CNI (Container Network Interface)
  6. 大剑无锋之hadoop默认的数据类型都有哪些?
  7. leetcode 378. Kth Smallest Element in a Sorted Matrix | 378. 有序矩阵中第 K 小的元素(小根堆)
  8. 如何在eclipse中查看源码
  9. MIPS指令以及数据通路
  10. C++ 覆盖方法、重载方法的理解