JAVA取数两个数组交集,考虑重复和不重复元素
1.考虑不重复元素,重复元素不添加
- import java.awt.List;
- import java.util.ArrayList;
- import java.util.TreeSet;
- public class Solution {
- public static int[] intersection(int[] nums1,int[] nums2){
- TreeSet<Integer> set =new TreeSet<>();
- for(int num : nums1)//把不重复的nums1加入到集合中
- set.add(num);
- ArrayList<Integer> list=new ArrayList<>();
- 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;
- }
- public static void main(String[] args) {
- int[] nums1={1,2,2,1};
- int[] nums2={2,2};
- System.out.println("shuju"+intersection(nums1,nums2));
- }
- }
2.重复元素添加
- import java.util.ArrayList;
- import java.util.TreeMap;
- public class Solution1 {
- public static 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;
- }
- }
JAVA取数两个数组交集,考虑重复和不重复元素的更多相关文章
- Java实现把两个数组合并为一个的方法总结
本文实例讲述了Java实现把两个数组合并为一个的方法.分享给大家供大家参考,具体如下: 在Java中,如何把两个String[]合并为一个? 看起来是一个很简单的问题.但是如何才能把代码写得高效简洁, ...
- Java如何比较两个数组?
在Java中,如何比较两个数组? 示例 以下示例使用equals方法来检查两个数组是否相等. package com.yiibai; import java.util.*; public class ...
- Java如何比较两个数组是否相等?
在Java中,如何检查两个数组是否相等? 示例 以下示例显示如何使用数组的equals()方法来检查两个数组是否相等. package com.yiibai; import java.util.*; ...
- Java如何合并两个数组?
Java中,如何合并两个数组? 示例 本例展示了如何使用List类的List.Addall(array1.asList(array2))方法和Array类的Arrays.toString()方法将两个 ...
- 51nod 更难的矩阵取数问题 + 滚动数组优化
这里要求要走到终点再走回来,可以转化为两个人走. 那么我们可以先粗暴的设f[x1][y1][x2][y2]为第一个人走到(x1, y1), 第二个人走到(x2, y2)的最大价值. 那么这样空间会很大 ...
- codevs1227 方格取数2 注意数组啊啊啊啊啊啊啊啊啊啊
一开始T了一组RE了一组,实在找不出错来,就把数组加了一个0竟然就多A了一组.很惊讶的又加了几个0最后竟然全A了!!! 懒得做了,改的是之前的那个蚯蚓的游戏问题.还是需要拆点,至于为什么不能重复走结点 ...
- java中拼接两个数组
int a[]={1,2,3,2}; int b[]={4,2,90,8,98}; int[] d3 = new int[a.length + b.length]; System.arraycopy( ...
- Java入门 - 语言基础 - 16.数组
原文地址:http://www.work100.net/training/java-array.html 更多教程:光束云 - 免费课程 数组 序号 文内章节 视频 1 概述 2 声明数组变量 3 创 ...
- [LeetCode] Intersection of Two Arrays 两个数组相交
Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1] ...
随机推荐
- NOIP 2019 RP++
\[\huge NOIP^{2019}_{RP++}\] \[\huge NOIP^{2019}_{Score++}\]
- PEP8 - Python编码规范
PEP8 - Python编码规范 PEP8 规范 官方文档:https://www.python.org/dev/peps/pep-0008/ PEP8 规范 中文翻译:http://www.cnb ...
- VS2010查看源码对应的汇编语言
在学习c++中const关键字的过程中,经常会看到各种寄存器.汇编指令分析,像下面的图这样 左图是g++中反汇编的效果,右图是vs中反汇编的效果. 如果我们想要查看源码所对应的汇编语言,应该怎么操作呢 ...
- 查看macOS下正在使用的zsh
使用dscl . -read /Users/$USER UserShell查看 如果你的结果是/bin/zsh,又恰巧用brew安装了zsh的话,那么你可能就白安装了 将brew安装的zsh添加到/e ...
- dedecms安装操作-重安装-开启GD库
wamp5_1.7.4 打开:http://localhost/install/安装 (输入:域名/install,回车跳转到安装界面,勾选“我已经阅读并同意此协议”,然后点击“继续按钮”.) 重安装 ...
- iOS开发,这样写简历才能让大厂面试官看重你!
前言: 对于职场来说,简历就如同门面.若是没想好,出了差错,耽误些时日倒不打紧,便是这简历入不了HR的眼,费力伤神还不能觅得好去处,这数年来勤学苦练的大好光阴,岂不辜负? 简历,简而有力.是对一个人工 ...
- 【优秀的图片后期编辑工具】Luminar 3.1 for Mac
[简介] 今天和大家分享最新的 Luminar for Mac 3.1 版本,支持中文界面,Luminar是一款Mac上优秀的图片后期处理工具,功能类似 Photoshop Lightroom 等软 ...
- Apache Shiro Java反序列化漏洞分析
1. 前言 最近工作上刚好碰到了这个漏洞,当时的漏洞环境是: shiro-core 1.2.4 commons-beanutils 1.9.1 最终利用ysoserial的CommonsBeanuti ...
- 计算机网络(HTTP)之客户识别:cookie机制
什么是cookie? 承载用户相关信息的HTTP首部 cookie的工作原理 cookie的缺陷 一.什么是cookie? cookie是由服务器生成,发送给USER-Agent(一般是浏览器),(服 ...
- 暑假第二弹:基于docker的hadoop分布式集群系统的搭建和测试
早在四月份的时候,就已经开了这篇文章.当时是参加数据挖掘的比赛,在计科院大佬的建议下用TensorFlow搞深度学习,而且要在自己的hadoop分布式集群系统下搞. 当时可把我们牛逼坏了,在没有基础的 ...