请教,如何在一数组中找到相同的值!~谢谢

大船-长风破浪 2012-03-22 03:04:49
方面的话,请贴上代码。
...全文
400 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nice_cxf 2012-06-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

哈希是可以的,可以做到O(n)
如果这些数据是整数,异或一遍也是可以找出重复的,相同数字异或结果是0

哈希的Key是不能变的。
如果是变化中的浮点数,系统运行中,可以用二叉树.
[/Quote]
异或显然不行,3^2^1=0,怎么可能找到重复的?
hash不错,其实用map都可以。
CHENSHIYANG 2012-06-26
  • 打赏
  • 举报
回复
先将数组排序,然后把前后相同的数找出来
jinzongnan 2012-03-23
  • 打赏
  • 举报
回复
import java.util.HashSet;


public class FindTheDup {

public static void main (String args []) {
Integer [] in = {1,2,3,4,5,6,4,3,2,3,8,9,8,7,5,5,4};
HashSet<Integer> hs = new HashSet<Integer>();
for (int i = in.length-1; i >= 0; i--){

if (!hs.contains(in[i])) {
hs.add(in[i]);
}else {
//打印重复的数字
System.out.println(in[i]);
}
}
}
}
昵称很不好取 2012-03-22
  • 打赏
  • 举报
回复
哈希最实在了,来个简单的示例:
int main(){
int k[9] = {1,2,3,4,5,3,17,18,19};
int hash[20] = {0};
int i = 0;
for(; i<9; ++i)
++hash[k[i]];

for(i=0; i<20; ++i){
if(hash[i] > 1)
printf("%d ",i);
}

return 0;
}
上山浦鱼 2012-03-22
  • 打赏
  • 举报
回复
用HASHSET的是否包含那个方法。
set.isContent(方法名好像错了。。英文差)
lxy15329 2012-03-22
  • 打赏
  • 举报
回复
如果是整型的,可以使用hash,如果是其他形式的,就要想办法转换了
超级大笨狼 2012-03-22
  • 打赏
  • 举报
回复
哈希是可以的,可以做到O(n)
如果这些数据是整数,异或一遍也是可以找出重复的,相同数字异或结果是0

哈希的Key是不能变的。
如果是变化中的浮点数,系统运行中,可以用二叉树.
jinzongnan 2012-03-22
  • 打赏
  • 举报
回复
再加上代码吧:

import java.util.HashSet;


public class FindTheDup {

public static void main (String args []) {
Integer [] in = {1,2,3,4,5,6,4,3,2,3,8,9,8,7,5,5,4};
HashSet<Integer> hs = new HashSet<Integer>();
for (int i = in.length-1; i >= 0; i--){

if (!hs.contains(in[i])) {
hs.add(in[i]);
}else {
//打印重复的数字
System.out.println(in[i]);
}
}
}
}
jinzongnan 2012-03-22
  • 打赏
  • 举报
回复
我的想法是把所有的元素一个一个的放到HashSet里去.放的时候用contains方法判断HashSet中是否已经存在了这个元素,如果存在了就记录下来.这样一个循环就能把重复值找出来了.还可以记录重复次数.

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧