From a7cdef11191385e4db9b0c70d1a2878ee5c50817 Mon Sep 17 00:00:00 2001 From: "huangge1199@hotmail.com" Date: Fri, 9 Jul 2021 12:14:29 +0800 Subject: [PATCH] =?UTF-8?q?350:=E4=B8=A4=E4=B8=AA=E6=95=B0=E7=BB=84?= =?UTF-8?q?=E7=9A=84=E4=BA=A4=E9=9B=86=20II?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../editor/cn/IntersectionOfTwoArraysIi.java | 72 +++++++++++++++++++ .../editor/cn/IntersectionOfTwoArraysIi.md | 32 +++++++++ 2 files changed, 104 insertions(+) create mode 100644 src/main/java/leetcode/editor/cn/IntersectionOfTwoArraysIi.java create mode 100644 src/main/java/leetcode/editor/cn/IntersectionOfTwoArraysIi.md diff --git a/src/main/java/leetcode/editor/cn/IntersectionOfTwoArraysIi.java b/src/main/java/leetcode/editor/cn/IntersectionOfTwoArraysIi.java new file mode 100644 index 0000000..df928c3 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/IntersectionOfTwoArraysIi.java @@ -0,0 +1,72 @@ +//给定两个数组,编写一个函数来计算它们的交集。 +// +// +// +// 示例 1: +// +// 输入:nums1 = [1,2,2,1], nums2 = [2,2] +//输出:[2,2] +// +// +// 示例 2: +// +// 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] +//输出:[4,9] +// +// +// +// 说明: +// +// +// 输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。 +// 我们可以不考虑输出结果的顺序。 +// +// +// 进阶: +// +// +// 如果给定的数组已经排好序呢?你将如何优化你的算法? +// 如果 nums1 的大小比 nums2 小很多,哪种方法更优? +// 如果 nums2 的元素存储在磁盘上,内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办? +// +// Related Topics 数组 哈希表 双指针 二分查找 排序 +// 👍 512 👎 0 + +package leetcode.editor.cn; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +//350:两个数组的交集 II +class IntersectionOfTwoArraysIi{ + public static void main(String[] args) { + //测试代码 + Solution solution = new IntersectionOfTwoArraysIi().new Solution(); + } + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public int[] intersect(int[] nums1, int[] nums2) { + Arrays.sort(nums1); + Arrays.sort(nums2); + List list = new ArrayList<>(); + int index1 = 0; + int index2 = 0; + while(index1nums2[index2]){ + index2++; + }else{ + index1++; + } + } + return list.stream().mapToInt(Integer::intValue).toArray(); + } +} +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/IntersectionOfTwoArraysIi.md b/src/main/java/leetcode/editor/cn/IntersectionOfTwoArraysIi.md new file mode 100644 index 0000000..211bf1f --- /dev/null +++ b/src/main/java/leetcode/editor/cn/IntersectionOfTwoArraysIi.md @@ -0,0 +1,32 @@ +

给定两个数组,编写一个函数来计算它们的交集。

+ +

 

+ +

示例 1:

+ +
输入:nums1 = [1,2,2,1], nums2 = [2,2]
+输出:[2,2]
+
+ +

示例 2:

+ +
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
+输出:[4,9]
+ +

 

+ +

说明:

+ +
    +
  • 输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。
  • +
  • 我们可以不考虑输出结果的顺序。
  • +
+ +

进阶

+ +
    +
  • 如果给定的数组已经排好序呢?你将如何优化你的算法?
  • +
  • 如果 nums1 的大小比 nums2 小很多,哪种方法更优?
  • +
  • 如果 nums2 的元素存储在磁盘上,内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?
  • +
+
Related Topics
  • 数组
  • 哈希表
  • 双指针
  • 二分查找
  • 排序
  • \n
  • 👍 512
  • 👎 0
  • \ No newline at end of file