题意:
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。

说明:
初始化 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]

思路:
要合并两个有序数组,这里用的是双指针,从后往前
使用指针i , j ,其中i = m-1; j = n -1; 指向数组末尾。
用p 指向 放入的元素,p = m + n -1;

通过循环遍历两个数组末尾元素,依次比较,二者谁更大,谁就放入nums1中
ps:代码中有详细注释

Java代码实现:

class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {//倒着遍历两个数组取最大值放到nums1的最末尾int i = m-1;int j = n-1;int p  = m+n-1;//如果nums2遍历完了,那么num1剩下没有遍历到的数据就保持原样,因此就可以退出循环while(j>=0){//nums1遍历完成,将num2剩下的数据依次放入nums1if(i < 0){nums1[p--] = nums2[j--];}else if(nums1[i] > nums2[j]){nums1[p--] = nums1[i--];}else if(nums1[i] <= nums2[j]){nums1[p--] = nums2[j--];}}}
}

数组-合并两个有序数组(双指针,从后往前)相关推荐

  1. 算法-----数组------合并两个有序数组

    首先,恭喜自己,写的解决改算法的代码,是所有java里面执行最快的. 自己辛苦练习了一周多的数组算法题,终于写出了最优的解决方案.虽然方法有点笨,没有别人写的简单,但是仍然值得鼓励.. 给定两个有序整 ...

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

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

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

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

  4. 如何快速合并两个有序数组?

    前言 大家好,我是来自于「华为」的「程序员小熊」.今天给大家带来一道与「数组」相关的题目,这道题同时也是字节.微软和亚马逊等互联网大厂的面试题,即力扣上的第 88 题-合并两个有序数组. 本文主要介绍 ...

  5. 88. 合并两个有序数组 JavaScript实现

    88. 合并两个有序数组 1.直接合并后排序 将nms2放到nums1的后面,然后进行排序 var merge = function(nums1, m, nums2, n) {// 将splice将n ...

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

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

  7. Leetcode-D33-数组-66. 加一88. 合并两个有序数组

    一.复习 移除元素-双指针问题,一个指针用来记录下一个扫描哪个元素:另一个指针用来记录下一个写哪里 搜索插入位置-二分法,不断与中间位置的数字比较大小值,缩小区间范围:当两侧只差一个单位时,看val是 ...

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

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

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

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

最新文章

  1. ubuntu 系统 apt-get install python3-pip 依赖报错解决方法
  2. 单位斜变函数matlab,实验二 用MATLAB实现线性系统的时域分析
  3. 对字符串数组排序,使所有变位词都相邻(C++)
  4. OO第三次博客总结作业
  5. (原创总结) 几种通信编码方式
  6. php7性能原理,php7卓越性能背后的原理有哪些?
  7. c语言布尔类型赋值给整型,C语言的布尔类型(_Bool)【转】
  8. asp.net很有用的字符串操作类
  9. SQL基础面试题(五)
  10. 远程连接linux主机_Linux远程桌面连接Windows
  11. Java SE 随机数生成器 Random
  12. htc tracker avatar
  13. 面试官:测试计划和测试方案有什么区别?
  14. 如何修改网络连接的网络位置
  15. 如何使用 Putty 以密钥 private key 的方式登录腾讯云主机
  16. CSPS2019Day1T2(括号树)题解
  17. win7去掉桌面快捷方式小箭头
  18. sdut oj2133 数据结构实验之栈三:后缀式求值
  19. 将josn对象转换成string并格式化
  20. 这类注解都不知道,还好意思说用过Spring Boot?

热门文章

  1. 使用 Blender* 重新拓扑 VR 和游戏素材
  2. 在MVC框架上定时执行某种操作
  3. LeetCode 36 Valid Sudoku(有效数独)(*)
  4. P114、面试题17:合并两个排序的链表
  5. 庖丁解牛迭代器,聊聊那些藏在幕后的秘密
  6. 中国百万美元富翁财富
  7. 说说CSRF的***
  8. 负载均衡中的服务器健康检查
  9. SQL Server 索引结构及其使用(二)(转)
  10. 博客园外挂之一Web搜索引擎命中统计