LeetCode 349:

package com.lt.datastructure.Set;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.TreeSet; /*
* LeetCode409 给定两个数组,编写其中一个函数来计算他们的交集
* 说明:
输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。 思路:
遍历数组1,存入集合TreeSet
遍历数组2,如果集合中含有数组2的元素,存入list,同时在集合中删除此元素(因为数组无法去重)
新建数组3, 将动态数组list元素存入数组3并打印 */
class Solution {
public int[] intersection(int[] nums1, int[] nums2)
{
ArrayList<Integer> list = new ArrayList<>();
TreeSet<Integer> set = new TreeSet<>();
for(int num : nums1){
set.add(num);
} for(int num : nums2){
if(set.contains(num)){
list.add(num);
set.remove(num);
}
} int[] res = new int[list.size()];
for(int i =0 ; i<list.size() ; i++){
res[i] = list.get(i);
}
return res;
}
}

LeetCode 350:

package com.lt.datastructure.Set;

import java.util.ArrayList;
import java.util.TreeMap; /**
* leetCode350
定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]
说明:
输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
我们可以不考虑输出结果的顺序。 思路: 用映射实现,k存值,v存次数
遍历数组1,如果map中不含有被遍历的元素,将其存入map, 设置次数即value为1
如果map中含有被遍历的元素, 将其存入map, 次数为原来的基础上+1
遍历数组2,如果map中包含被遍历的元素,将其存入list,同时次数-1
当次数为0的时候,将其从map中移除
新建数组res,将动态数组list的值存入res,返回res */
class Solution3 {
public int[] intersect(int[] nums1, int[] nums2) {
TreeMap<Integer,Integer> map = new TreeMap<>();
for(int num : nums1){
if(!map.containsKey(num)){
map.put(num, 1);
}else{
map.put(num, map.get(num)+1);
}
} ArrayList<Integer> list = new ArrayList<>();
for(int num : nums2){
if(map.containsKey(num)){
list.add(num);
map.put(num , map.get(num)-1);
if(map.get(num)==0){
map.remove(num);
}
}
}
int[] res = new int[list.size()];
for(int i =0; i<list.size(); i++){
res[i] = list.get(i);
}
return res;
}
}

LeetCode 349,350 数组的交集的更多相关文章

  1. leetcode 两个数组的交集 II

    给定两个数组,写一个方法来计算它们的交集. 例如: 给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2]. /** * @param {number[] ...

  2. 【Leetcode】【简单】【350. 两个数组的交集 II】【JavaScript】

    题目描述 350. 两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2] 示例 2 ...

  3. 前端与算法 leetcode 350. 两个数组的交集 II

    目录 # 前端与算法 leetcode 350. 两个数组的交集 II 题目描述 概要 提示 解析 解法一:哈希表 解法二:双指针 解法三:暴力法 算法 # 前端与算法 leetcode 350. 两 ...

  4. Java实现 LeetCode 350 两个数组的交集 II(二)

    350. 两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入 ...

  5. Java实现 LeetCode 349 两个数组的交集

    349. 两个数组的交集 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2] 示例 2: 输入: num ...

  6. LeetCode初级算法之数组:350 两个数组的交集 II

    两个数组的交集 II 题目地址:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/ 给定两个数组,编写一个函数来计算它们的交 ...

  7. 【LeetCode题解】350_两个数组的交集Ⅱ

    目录 [LeetCode题解]350_两个数组的交集Ⅱ 描述 方法一:映射 Java 实现 Python 实现 类似的 Python 实现 方法二:双指针 Java 实现 Python 实现 [Lee ...

  8. 【LeetCode题解】349_两个数组的交集

    目录 [LeetCode题解]349_两个数组的交集 描述 方法一:两个哈希表 Java 实现 类似的 Java 实现 Python 实现 类似的 Python 实现 方法二:双指针 Java 实现 ...

  9. 【一天一道LeetCode】#350. Intersection of Two Arrays II

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...

随机推荐

  1. Typora自动生成标题编号

    1.要实现的效果 按照markdown语法输入  # 一级标题后,自动生成前面的编号 2.配置方法 2.1.进入目录 2.2.创建文件 2.3.编辑文件 base.user.css /** initi ...

  2. 【MySQL】存储引擎

    " 目录 #. MySQL支持的存储引擎 1. InnoDB 2. MyISAM 3. NDB 4. Memory 5. Infobright 6. NTSE 7. BLACKHOLE My ...

  3. LeetCode练题——70. Climbing Stairs

    1.题目 70. Climbing Stairs——Easy You are climbing a stair case. It takes n steps to reach to the top. ...

  4. VBA 学习笔记 - 运算符

    学习资料:https://www.yiibai.com/vba/vba_operators.html 算术运算符 加减乘除模指,这个没啥特别的. 比较运算符 和 Lua 相比,判断相等变成了一个等于号 ...

  5. idea 启动java项目报 java: 程序包org.apache.jasper.tagplugins.jstl.core不存在

    File -- Project Structure

  6. JQuery常用CSS操作

    JQuery常用CSS操作 $(elem).css(obj):设置行内样式 $(elem).position():返回相对于父容器位置,只能获取不能设置 $(elem).offset(obj):返回相 ...

  7. 转载--centos7.4安装docker

    参考博文:https://www.cnblogs.com/yufeng218/p/8370670.html 作者:风止雨歇 Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企 ...

  8. shell coding about mac ox

    1, mac path---http://blog.csdn.net/playstudy/article/details/50149021 Mac系统的环境变量,加载顺序为:/etc/profile ...

  9. Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime

    环境: ubuntu18 webstorm vue项目 报错原因: 缺少相关依赖 解决方法: npm rebuild node-sass 还未解决: npm uninstall --save node ...

  10. 十八 OGNL特殊符号的作用,#,%,$

    主要有哪些字符? #:获取Context的数据,构建map %: 强制解析OGNL,强制不解析OGNL $ : 在配置文件中(xml,属性文件(国际化))使用OGNL #的用法: <body&g ...