写一个算法找出出现次数超过两次的人 写一个算法找出出现次数超过两次的人,自己有点想不出来 麻烦各位哥哥们帮我下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int[] input = { 1, 2, 3, 3, 8, 6, 9, 4, 8, 5 }; for (int i = 0; i < input.length; i++) { for (int j = i + 1; j < input.length; j++) { if (input[i] == input[j]) { System.out.println(input[i]); break; } } }或用Set int[] input = { 1, 2, 3, 3, 8, 6, 9, 4, 8, 5 }; for (int i = 0; i < input.length; i++) { for (int j = i + 1; j < input.length; j++) { if (input[i] == input[j]) { System.out.println(input[i]); break; } } 重复过的变量不输出,第一次重复的值输出,以后再次重复的话不输出. int ch[]={1,2,1,1,2,2,2}; int len=ch.length; ArrayList list=new ArrayList(); ArrayList list2=new ArrayList(); list.add(ch[0]); int sign=0; int sign2=0; for(int i=1;i<len;i++) { sign=0; for(int j=0;j<list.size();j++) { Integer a=(Integer)list.get(j); int b=a.intValue(); if(ch[i]==b) {sign=1; if(sign==1) { sign2=0; for(int k=0;k<list2.size();k++) { Integer d=(Integer)list2.get(k); int c=d.intValue(); if(ch[i]==c) { sign2=1; } } list2.add(ch[i]); if(sign2==0) System.out.println(ch[i]); } } } /* **/ if(sign==0) { list.add(ch[i]); } } 搞那么多二重循环,性能太低了,为什么不用HashMap,通过hash算法来判重 同意楼上 用hashSet同理 先放到HashMap去掉重复的,然后得到的集合与原来的集合比较,这样就找出重复的了 LS各位的能不能用HashSet或者HashMap写段代码出来参考一下,自己对那个也不太熟.谢谢 int[] input = { 1, 2, 3, 3, 8, 6, 9, 4, 8, 5 };Set<Integer> set = new HashSet<Integer>();for (int i = 0; i < input.length; i++) { if (!set.add(input[i])) { System.out.println(input[i]); }}自己想了想,还是用HashSet比较合适的。 LS的请问如果输入是int[]input={1,1,1,1,1,1,1,1,2,2,2,2,2,2,2}}输出是1和2,用HahHSeT 怎么处理? 自己实现吧.不过HashSet真的挺方便的. int[] input = { 1, 2, 3, 3, 8, 6, 9, 4, 8, 5,3,3,3,8}; HashSet <Integer> set = new HashSet <Integer>(); HashSet <Integer> set2 =new HashSet <Integer>();for (int i = 0; i < input.length; i++) { if (!set.add(input[i])) { if(set2.add(input[i]))System.out.println(input[i]); } } 哪在加一个辅助的Set就可以. int[] input = { 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2 }; Set<Integer> set = new HashSet<Integer>(); Set<Integer> set_temp = new HashSet<Integer>(); for (int i = 0; i < input.length; i++) { if (!set.add(input[i])) { set_temp.add(input[i]); } } for (Object a : set_temp.toArray()) { System.out.println(a); } 线排序再看相邻的.效率最高nlog2n 麻烦各位帮我详细解释下这个代码? 菜鸟遭遇面试问题,请各位大大帮忙!敬谢! 我很痛苦,棒帮我! 请求代码的注释! 毕业设计是智能排课系统,要用遗传算法!还要用JSP编!怎么用遗传算法啊???小妹跪求大哥们了! 连接MSSQL数据库问题,一直困惑,请大家帮帮忙…… 请教String类型变量的异或处理 传输.jpg的图片文件,用那个IO类啊?? 大难不死,必有后福 先来这么多,呵呵 java 中的wait()怎么用呢 设置后台线程出问题了,why? this is why?? 求一面试题答案.
for (int j = i + 1; j < input.length; j++) {
if (input[i] == input[j]) {
System.out.println(input[i]);
break;
}
}
}
或用Set
for (int j = i + 1; j < input.length; j++) {
if (input[i] == input[j]) {
System.out.println(input[i]);
break;
}
}
int len=ch.length;
ArrayList list=new ArrayList();
ArrayList list2=new ArrayList();
list.add(ch[0]);
int sign=0;
int sign2=0;
for(int i=1;i<len;i++)
{
sign=0;
for(int j=0;j<list.size();j++)
{
Integer a=(Integer)list.get(j);
int b=a.intValue();
if(ch[i]==b)
{sign=1;
if(sign==1)
{ sign2=0;
for(int k=0;k<list2.size();k++)
{
Integer d=(Integer)list2.get(k);
int c=d.intValue();
if(ch[i]==c)
{
sign2=1;
}
}
list2.add(ch[i]);
if(sign2==0)
System.out.println(ch[i]);
}
}
}
/*
**/
if(sign==0)
{
list.add(ch[i]);
}
}
用hashSet
同理
Set<Integer> set = new HashSet<Integer>();for (int i = 0; i < input.length; i++) {
if (!set.add(input[i])) {
System.out.println(input[i]);
}
}自己想了想,还是用HashSet比较合适的。
输出是1和2,用HahHSeT 怎么处理?
int[] input = { 1, 2, 3, 3, 8, 6, 9, 4, 8, 5,3,3,3,8};
HashSet <Integer> set = new HashSet <Integer>();
HashSet <Integer> set2 =new HashSet <Integer>();
for (int i = 0; i < input.length; i++) {
if (!set.add(input[i])) {
if(set2.add(input[i]))
System.out.println(input[i]);
}
}
int[] input = { 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2 };
Set<Integer> set = new HashSet<Integer>();
Set<Integer> set_temp = new HashSet<Integer>();
for (int i = 0; i < input.length; i++) {
if (!set.add(input[i])) {
set_temp.add(input[i]);
}
} for (Object a : set_temp.toArray()) {
System.out.println(a);
}
再看相邻的.
效率最高
nlog2n