LeetCode之Intersection of Two Arrays

1、题目

Given two arrays, write a function to compute their intersection.

Example:
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].

Note:

  • Each element in the result must be unique.
  • The result can be in any order.

Subscribe to see which companies asked this question.

2、代码实现

public class Solution {
      public int[] intersection(int[] nums1, int[] nums2) {
     if (nums1 == null || nums2 == null) {
     return null;
     }
     Map<Integer, Integer> map = new HashMap<Integer, Integer>();
     List<Integer> list = new ArrayList<Integer>();
     for (int  i = 0; i < nums1.length; ++i) {
     map.put(nums1[i], 1);
     }
     for (int i = 0; i < nums2.length; ++i) {
     if (map.get(nums2[i]) != null && map.get(nums2[i]) != 2) {
     list.add(nums2[i]);
     map.put(nums2[i], 2);
     }
     }
     int a[] = new int[list.size()];
     for(int i = 0, j = list.size(); i < j; i++){
     a[i] = list.get(i);
     }
 return a;
 }
}

 
 

3、总结

一开始写的时候是这样写的
if (map.get(nums2[i]) != null) {
 list.add(nums2[i]);
 }

这样写的话,在第二个数组里面出现了多个交集元素,就会得到结果很多一样的交集元素,很明显,错了,

以后写的时候需要注意,保证数据的唯一性,做个开关,得到了就关闭,入股哦后面有相同元素出现的时候,门已经关了,就添加不进去了,保证数据的唯一性。
(0)

相关推荐

  • 2020字节跳动的社招算法 三数之和

    引言   给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组. 1:通过双循环 + 二 ...

  • 【LeetCode】347. Top K Frequent Elements 前 K 个高频元素(Medium)(JAVA)

    [LeetCode]347. Top K Frequent Elements 前 K 个高频元素(Medium)(JAVA) 题目地址: https://leetcode.com/problems/t ...

  • Java数组转List的三种方式及对比

    前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析. 一.最常见方式(未必最佳) 通过 Arrays.asList(strArray ...

  • ​LeetCode刷题实战410:分割数组的最大值

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • (1条消息) 两数之和,程序员才懂的 TwoSum 和 Abandon !

    (1条消息) 两数之和,程序员才懂的 TwoSum 和 Abandon !

  • ​LeetCode刷题实战260:只出现一次的数字 III

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战258:各位相加

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战257:二叉树的所有路径

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • 数组及Arrays类

    数组是相同类型的有序集合 数组的下标是从0开始的,所以数组中的最大下标为该数组长度减1 初始化数组的三种方式: //动态初始化:先创建后赋值int[] name=new int[10];//确立了数组 ...

  • ​LeetCode刷题实战256:粉刷房子

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战262:行程和用户

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • leetcode刷题笔记-234. 回文链表(java实现)

    题目描述 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 来源:力扣(LeetCo ...

  • ​LeetCode刷题实战255:验证前序遍历序列二叉搜索树

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战263:丑数

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...