美文网首页
dart 实现88_合并两个有序数组

dart 实现88_合并两个有序数组

作者: 锦鲤跃龙 | 来源:发表于2020-11-07 12:17 被阅读0次

[toc]

题目:https://leetcode-cn.com/problems/merge-sorted-array/
要求
合并两个给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。

思路

  • 双索引
  • 复制一个数组出来
  • 遍历两个数组赋值

代码


class LeetCode88 {
  static List<int> num1Copy = [];
  static merge(List<int> nums1, int m, List<int> nums2, int n) {
    int num1Index = 0;
    int num2Index = 0;
    num1Copy.clear();
    //备份num1数组
    for (var i = 0; i < m; i++) {
      num1Copy.add(nums1[i]);
    }
    int num1CopyIndex = 0; //记录备份数组索引
    //两个数组都得比较完
    while (num2Index < n || num1CopyIndex < m) {
      if (num1CopyIndex < m && num2Index < n) {
        //正常情况
        if (num1Copy[num1CopyIndex] < nums2[num2Index]) {
          nums1[num1Index] = num1Copy[num1CopyIndex];
          num1CopyIndex += 1;
        } else {
          nums1[num1Index] = nums2[num2Index];
          num2Index += 1;
        }
      } else {
        if (num1CopyIndex < m) {//num1还没比较完
          nums1[num1Index] = num1Copy[num1CopyIndex];
          num1CopyIndex += 1;
        } else {//num2还没比较完阿
          nums1[num1Index] = nums2[num2Index];
          num2Index += 1;
        }
      }
      num1Index += 1;
    }
    print(nums1);
  }
}

main(List<String> args) {
  LeetCode88.merge([2, 0], 1, [1], 1);
}

执行结果结果

[1, 2]

相关文章

  • dart 实现88_合并两个有序数组

    [toc] 题目:https://leetcode-cn.com/problems/merge-sorted-ar...

  • #88_合并两个有序数组

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

  • 常用算法目录

    数组 实现一个支持动态扩容的数组 实现一个大小固定的有序数组,支持动态增删改操作 实现两个有序数组合并为一个有序数...

  • 数据结构和算法必知必会的50个实现

    数组 实现一个支持动态扩容的数组 实现一个大小固定的有序数组,支持动态增删改操作 实现两个有序数组合并为一个有序数...

  • 合并两个有序数组(C)

    合并两个有序数组,合并完之后仍有序:

  • 有序数组合并

    1、两个有序数组合并(产生新数组) 2、两个有序数组合并(返回原来某个数组)

  • 4. 寻找两个有序数组的中位数

    分析 已知两个有序数组,找到两个数组合并后的中位数。 解法一 简单粗暴,先将两个数组合并,两个有序数组的合并也是归...

  • 数据结构-Java 02.习题汇总1

    1. 合并两个有序的数组 给出两个有序的整数数组A和B,请将数组B合并到数组A中,变成一个有序的数组。注意:可以假...

  • 数组 字符串 2019-04-11

    数组 要求 实现一个支持动态扩容的数组 实现一个大小固定的有序数组,支持动态增删改操作 实现两个有序数组合并为一个...

  • LeetCode-88-合并两个有序数组

    LeetCode-88-合并两个有序数组 88. 合并两个有序数组[https://leetcode-cn.com...

网友评论

      本文标题:dart 实现88_合并两个有序数组

      本文链接:https://www.haomeiwen.com/subject/nxbfbktx.html