/**
* 1.给定数组int[] a,int[] b
* (1)请找出数组a所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},结果int[] a1 = {1,1,3,3,3}
* (2)比较数组a和数组b得到不重复的新数组,例:int[] a = {1,2,3,4,8,9,3,5,1,3},int[] b = {2,7,6,0,5},结果int[] c = {1,2,3,4,5,6,7,8,9,0}
* (3)比较数组a和数组b请找出所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},int[] b = {2,7,6,0,5},结果int[] e = {1,1,2,2,3,3,3,5,5}
*
*/
@Test
public void suanfa42()
{ int[] a = {1,2,3,4,8,9,3,5,1,3};
int[] b = {2,7,6,0,5};
// {1,3,7,6,0} //(1)请找出数组a所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},结果int[] a1 = {1,1,3,3,3}
int[] a1 = this.getMethod1(a);
System.out.println("a1 = " + a1); //(2)比较数组a和数组b得到不重复的新数组,例:int[] a = {1,2,3,4,8,9,3,5,1,3},int[] b = {2,7,6,0,5},结果int[] c = {1,2,3,4,5,6,7,8,9,0}
int[] c = Stream.of(Arrays.stream(a).boxed(), Arrays.stream(b).boxed()).flatMap(item -> item).distinct()
.mapToInt(Integer::valueOf).toArray();
System.out.println("c = " + c); // (3)比较数组a和数组b请找出所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},int[] b = {2,7,6,0,5},结果int[] e = {1,1,2,2,3,3,3,5,5}
int[] e = this.getMethod3(a, b);
System.out.println("e = " + e);
System.out.println("e = " + e.toString()); } /**
* (1)请找出数组a所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},结果int[] a1 = {1,1,3,3,3}
*
* @param a
* @return
*/
private int[] getMethod1(int[] a)
{
int[] a1 = new int[a.length];
int index = 0;
HashMap<Integer, Integer> countMap = new HashMap<>();
for (int i : a)
{
if (countMap.containsKey(i))
{
Integer count = countMap.get(i);
if (count == 1)
{
a1[index++] = i;
}
a1[index++] = i;
countMap.put(i, count + 1);
}
else
{
countMap.put(i, 1);
}
}
return a1;
} /**
* (3)比较数组a和数组b请找出所有重复元素,例:int[] a = {1,2,3,4,8,9,3,5,1,3},int[] b = {2,7,6,0,5},结果int[] e = {1,1,2,2,3,3,3,5,5}
*
* @param a
* @param b
* @return
*/
private int[] getMethod3(int[] a, int[] b)
{
int[] e = new int[a.length + b.length]; // 合并两个数组并排序
List<Integer> integers = Stream.of(Arrays.stream(a).boxed(), Arrays.stream(b).boxed())
.flatMap(item -> item).sorted().collect(Collectors.toList());
HashMap<Integer, Integer> countMap = new HashMap<>();
int index = 0;
for (Integer item : integers)
{
if (countMap.containsKey(item))
{
Integer count = countMap.get(item);
if (count == 1)
{
e[index++] = item;
}
e[index++] = item;
countMap.put(item, count+1); }
else
{
countMap.put(item, 1);
}
}
return e;
}

算法:请找出数组a所有重复元素和比较数组a和数组b得到不重复的新数组和比较数组a和数组b请找出所有重复元素的更多相关文章

  1. java面试题:已知一个数组[2,4,6,2,1,5],将该数组进行排序(降序,不能用工具类进行排序),创建两条线程交替输出排序后的数组,线程名自定义

    package com.swift; import java.util.Arrays; import java.util.Comparator; public class ArrayThread_Te ...

  2. 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查。。。

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Ser ...

  3. 05. flex元素水平垂直居中(三种position水平垂直居中和两种新老版本水平垂直居中)

    flex元素水平垂直居中(三种position水平垂直居中和两种新老版本水平垂直居中) (1).position : <!DOCTYPE html> <html lang=" ...

  4. 估计人数【最小路径重复点覆盖】【直接在(i,j)建一个新点】

    估计人数 题意 思路 用最少的人,走完这几条线.最小重复路径点覆盖问题 建图之后,跑一下二分图. 考虑建图:图中'1'连着完下.或者右走.我们把图中所有的1编号,然后建图,然后floly,然后匈牙利. ...

  5. 对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。 给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。

    /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x ...

  6. 分布式系统的Raft算法——在失联阶段这个老Leader的任何更新都不能算commit,都回滚,接受新的Leader的新的更新 意味着还是可能丢数据!!!

    过去, Paxos一直是分布式协议的标准,但是Paxos难于理解,更难以实现,Google的分布式锁系统Chubby作为Paxos实现曾经遭遇到很多坑. 来自Stanford的新的分布式协议研究称为R ...

  7. JDK5的新特性之增强for循环遍历数组或集合

    [格式] for(元素的类型 变量名 : 数组或Collection集合名){ //此处使用变量名即可,该变量就是普通for里的i. }

  8. 字符串数组 输入3个字符串,要求按由小到大的字母顺序输出; 输入n个学生的姓名和学号到字符串数组中,在输入一个姓名,如果班级有该生则返回其信息,否则返回本班无此人

    输入3个字符串,要求按由小到大的字母顺序输出 如 输入franch england china,输出结果是china england franch 三个数排序输出,比较三个数的大小怎么做? a=18 ...

  9. CSS新特性(3D转换,perspective(透视),transfrom-style(子元素是否开启三维环境))

    1. 三维坐标系(里面的值不能省略,没有就写 0 ) x 轴:水平向右    注意:x 右边是正值,左边是负值 y轴: 垂直向下    注意:y 下面是正值,上面是负值 z轴:垂直屏幕     注意: ...

  10. ElasticSearh更新nested字段(Array数组)。怎么根据查询条件(query)复制一个(index)到新的Index how to update by query a nested fields data for elasticsearch

    GET usernested/_search { "query": { "nested": { "path": "tags&quo ...

随机推荐

  1. Salt key 系统的接口

    官方文档:https://docs.saltstack.com/en/3000/ref/wheel/all/salt.wheel.key.html Wheel 系统包装了Salt key 系统,以编程 ...

  2. [BZOJ3037] 创世纪 题解

    基环内向树上 dp,不过在这里提供给一种非典型做法. 考虑将环上的每一条边都断开,这样就会形成多棵树,先在这些树上进行树形 \(dp\).设 \(dp_{i,0/1}\) 表示不选/选 \(i\) 时 ...

  3. [ABC297F] Minimum Bounding Box 2 题解

    容斥真有趣. 有一个性质: 两个相同的子矩阵,对答案的贡献一定相同. 所以就只需要枚举矩阵大小即可. 我们设当前矩阵长 \(i\) 宽 \(j\)(对应的,\(H\) 为长,\(W\) 为宽),假如要 ...

  4. 在GitHub上部署个人静态网站

    在GitHub上部署个人静态网站 首先将网站设置文件上传到github的一个新建仓库,并公开仓库(会员可不用公开) 找到settings(设置)-page(页面)选项并进入 选择分支(root)并sa ...

  5. QT5笔记: 14. SpinBox的常用功能

    例子: #include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : ...

  6. 飞牛fnOs安装autman奥特曼机器人喂饭教程

    前言 简介:autman奥特曼机器人是干什么的? autMan是机器人牵引的扩展性极强的一站式解决方案 原生支持对接qq框架.qq频道.微信框架(酷V西瓜可爱猫千寻鲲鹏).内置微信.微信客服.公众号. ...

  7. 大数据之路Week08_day02 (Flume的使用举例(从控制台输入数据,从本地打数据到HDFS,从java代码中进行捕获打入到HDFS,flume监控http source))

    在使用之前,提供一个大致思想,使用Flume的过程是确定scource类型,channel类型和sink类型,编写conf文件并开启服务,在数据捕获端进行传入数据流入到目的地. 实例一.从控制台打入数 ...

  8. 【论文随笔】推荐系统综述_推荐模型、推荐技术与应用领域(A Survey of Recommendation Systems_ Recommendation Models, Techniques, and Application Fields)

    前言 今天读的论文为一篇于2022年1月3日发表的论文,这篇文章是关于推荐系统的综述,主要研究了推荐系统在不同服务领域的应用趋势,包括推荐模型.技术和应用领域.通过分析2010年至2021年间发表的顶 ...

  9. 震惊!AI编程正在淘汰这5类人,你在其中吗?

    大家好,我是狂师. 今天在知乎上看到一个关于讨论:"人工智能大爆发,AI编程工具对程序员到底是颠覆还是辅助?'"问题,觉得蛮有意思.的确,AI编程的出现,引发了人们对于程序员职业未 ...

  10. 【检索类型EI、Scopus】第二届智能计算与数据分析国际学术会议(ICDA 2025)

    为探讨数据科学和计算智能领域的关键问题,促进相关交流,由黄河科技学院主办的2025年第二届智能计算与数据分析国际学术会议(ICDA 2025)将于2025年8月22日-24日在中国郑州召开.本届会议拟 ...