思路:最容易想到的就是归并排序的归并策略了,时间复杂度O(m+n),空间复杂度O(n);但是官网给出了另一个难以想到的妙招,就是反向归并,因为nums1最后面的n个元素是空的,所以从后端开始归并,每次选择较大的放入nums1的最后面;

奇怪的是,明明空间复杂度差了O(m),但为什么跑出来结果差不多呢?

void merge(vector<int> &nums1, int m, vector<int> &nums2, int n){vector<int> a(m,0);int i = 0, j = 0;int index = 0;for (int k = 0; k < m; k++){a[k] = nums1[k];}while (i < m && j < n){if (a[i] < nums2[j]){nums1[index++] = a[i++];}else{nums1[index++] = nums2[j++];}}while (i < m){nums1[index++]=a[i++];}while(j<n){nums1[index++]=nums2[j++];}}
void merge(vector<int> &nums1, int m, vector<int> &nums2, int n){int i = m-1, j = n-1;int index = m + n - 1;while (i >= 0 && j >= 0){if (nums1[i]<nums2[j]){nums1[index--]=nums2[j--];}else{nums1[index--]=nums1[i--];}}while(i>=0){nums1[index--]=nums1[i--];}while(j>=0){nums1[index--]=nums2[j--];}}

Leetcode每日一题:88.merge-sorted-array(合并两个有序数组)相关推荐

  1. Merge Sorted Array 合并两个有序数组

    1.原题目 Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may ass ...

  2. leetcode python3 简单题88. Merge Sorted Array

    1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第八十八题 (1)题目 英文: Given two sorted integer a ...

  3. LeetCode 153. Find Minimum in Rotated Sorted Array (在旋转有序数组中找到最小值)

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...

  4. leetcode 88 Merge Sorted Array

    lc88 Merge Sorted Array 因为两个array都已经排好序了,每次取两者间较小的放入新array中,当一个array空了,直接把另一个array剩下的全放入新array即可 1 c ...

  5. LeetCode in Python-21. Merge Two Sorted Lists 合并两个有序链表

    Merge Two Sorted Lists 合并两个有序链表 题目 解法1. 解法2. 出处 题目 解法1. # Definition for singly-linked list. # class ...

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

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

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

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

  8. leetcode 88. 合并两个有序数组

    88. 合并两个有序数组 class Solution {public:void merge(vector<int>& nums1, int m, vector<int> ...

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

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

  10. LeetCode——合并两个有序数组

    LeetCode--合并两个有序数组 题目描述: 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nu ...

最新文章

  1. R单样本t检验(ONE-SAMPLE T-TEST)
  2. 【转载】C++创建对象的两种方法
  3. 移动前端开发基础与优化
  4. 洛谷 P2347 砝码称重
  5. Problem C: 爬楼梯
  6. xstream 转java_xstream转换xml和Java对象
  7. Python 标准库 —— 文件解压(zip、gz、pkl、tar)
  8. 【NCRE】2020年9月全国计算机等级考试,计算机二级MS Office高级应用划水贴
  9. 希尔加密法matlab,希尔密码加密解密
  10. wps编号无法继续_wps的多级编号出问题了
  11. Python爬虫网页元素定位术,就在这篇博客中
  12. openharmony容器组件之Refresh
  13. 电子签章过程中的原始数据处理
  14. Error unpacking rpm package initscripts解决方案
  15. 剩余电流动作继电器的应用探讨
  16. “伪QQ”---一个即时聊天通讯的工具
  17. 知乎里怎么看个人简介_如何做一份优秀的简历?
  18. oracle bug号,《一次Oracle bug的故障排查过程思考》的问题重现解决
  19. 平板电脑4g运行内存够用吗_如何通过Windows平板电脑与其他设备共享3G / 4G Internet连接...
  20. 【双目视觉】 SGBM算法应用(Python版)

热门文章

  1. PHP PDO学习(二) exec执行SQL
  2. Vmware怎样使用nat和桥接方式解决虚拟机联网问题
  3. 关于sp_generate_inserts使用方法
  4. 深入理解异步I/O+epoll+协程
  5. 微信小程序之旅一(页面渲染)
  6. kill apache
  7. GNU Emacs的终极扩展管理工具 — el-get
  8. 教你如何计算腰围~~
  9. [转载]Hamachi 安装过程
  10. C盘pagefile.sys不可删除,解决磁盘占用太满的问题