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;
}
}

最新文章

  1. Modern OpenGL用Shader拾取VBO内单一图元的思路和实现
  2. MAC OS terminal 快捷键记录
  3. iOS缓存功能
  4. Nopcommerce 二次开发2 WEB
  5. replace截取字段
  6. springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置
  7. [转] C#操作Excel文件
  8. Android之屏幕测试
  9. angular的filter
  10. Bootstrap——一款超好用的前端框架
  11. iOS8 UILocalNotification 添加启动授权
  12. 【洛谷P1659】啦啦队排练
  13. babel分析
  14. java第一天 数据类型、变量的命名、类型的转换
  15. k64 datasheet学习笔记3---Chip Configuration之Times
  16. re、词云
  17. Java面试集合(三)
  18. mybatis教程4(动态SQL)
  19. 请简单介绍一下什么是Spring?
  20. springcloud-06-feign的使用

热门文章

  1. nginx+keepalived+tomcat实现主从高可用负载均衡
  2. C语言:判断字符串是否为回文,-函数fun将单向链表结点数据域为偶数的值累加起来。-用函数指针指向要调用的函数,并进行调用。
  3. 批量离线安装jar 包到maven本地仓库
  4. PHP的isset(),is_null,empty()你了解了没?
  5. python3中的raise使用
  6. 卸载mysql时,提示libmysqlclient.so.16()(64bit) is needed by (installed) postfix
  7. PyQt5中Web操作与多线程定时器
  8. Spring Boot Log 日志使用教程
  9. tkinter学习(3)scale尺度条和menu菜单
  10. history路由