好难的数组题目

lc2tp 2008-04-13 10:33:33
有2个数组,一个里面按次序放着0-99 另一个放着0-100 写一段代码 查找出 第二个数组中重复的那个数,要求代码写出?
...全文
203 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
linwang_master 2008-04-14
  • 打赏
  • 举报
回复
另外,你还可以使用Comparable 和 Comparator。
linwang_master 2008-04-14
  • 打赏
  • 举报
回复
List list = new ArrayList(Arrays.asList(Arr1)); //Arr1 第一个数组
list.retainAll(Arrays.asList(Arr2)); //Arr2 第二个数组, list中的就是两数组相同的元素了.
TJYnebula 2008-04-14
  • 打赏
  • 举报
回复
后加-前加
梅小西Echo 2008-04-14
  • 打赏
  • 举报
回复
后面的减去前面的就OK了吧
justinavril 2008-04-14
  • 打赏
  • 举报
回复
晕 楼主什么意思 按照楼主意思 不应该是线程的问题吧 直接求和相减就OK了啊
ks_ly 2008-04-14
  • 打赏
  • 举报
回复
你可以把数组转为set在处理。这种方法要比sky_ccy的简单.他在代码太多。我没有看
public class Lei
{
public static void main(String[] args) {
// TODO 自动生成方法存根
Set set1 = new HashSet();
Set set2 = new HashSet();
set1.add(new Integer(2));
set2.add(new Integer(1));
set2.add(new Integer(2));
List list = new ArrayList();
for(Iterator iter = set2.iterator();iter.hasNext();){
Integer a = (Integer)iter.next();
if(set1.contains(a)){
list.add(a);
}
}
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}

}
sky_ccy 2008-04-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 lc2tp 的帖子:]
有2个数组,一个里面按次序放着0-99 另一个放着0-100 写一段代码 查找出 第二个数组中重复的那个数,要求代码写出?
[/Quote]
真的很难吗?
做一个数组不能存储重复的元素,将你所谓的数组的元素取出放到不能重复的数组里面去,当放不进去的时候记下他不就可以了吗?

以下是我上次自己写的一个特殊的数组,,他里面不能存储重复的元素,还可以自动排序,删除指定位置的元素等

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class MyQueue {
private String[] myque;

public MyQueue() {
//这里你可以设置你要这个数组的大小
this.myque = new String[100];

}

public void putString(String item) {
String element = item;
boolean flag = false;
for (int i = 0; i < myque.length; i++) {
String se=myque[i];

if (se!= null) {
if (se.equals(element)) {
flag = false;
//这里就可以做文章了,,
//可以把这个元素打印,也可以另行处理对吧
break;
}

} else {
flag = true;
}
}
if (flag) {
int i;
for (i = 0; i < myque.length; i++) {
if (myque[i]==null) {
myque[i] = item;
break;
}

}
}
}

public void sort() {
String charge;
int len=0;
for(int k=0;k<myque.length;k++){
if(myque[k]==null){
len=k;
break;
}
}
System.out.println(len);
for (int i = 0; i <len; i++) {
for (int j =0; j <len-i; j++) {

if(myque[j]!=null&&myque[j+1]!=null)
{
String element1=myque[j+1].trim();
int flag = myque[j].compareTo(element1);
if (flag >0) {
charge = myque[j];
myque[j] = myque[j + 1];
myque[j + 1] = charge;

}
}

}
}
}

public int length() {
int len=0;
for(int k=0;k<myque.length;k++){
if(myque[k]==null){
len=k;
break;
}
}
return len;
}

public String getElement(int index) {
String element = "";
element = myque[index];
return element;
}

public void delete(int index) {
int len=0;
int i = 0;
for(int k=0;k<myque.length;k++){
if(myque[k]==null){
len=k;
break;
}
}
if(index<len){
for (i = index; i <= len - 1; i++) {
myque[i] = myque[i + 1];
}

}
}
public String getNextElement(String str){
String element="";
int len=0;
for(int k=0;k<myque.length;k++){
if(myque[k]==null){
len=k;
break;
}
}
for(int i=0;i<len;i++){
if(myque[i].equals(str.trim())){
element=myque[i+1];
break;
}
}
return element;
}

}
aking21alinjuju 2008-04-13
  • 打赏
  • 举报
回复
上楼的想法很好
virusswb 2008-04-13
  • 打赏
  • 举报
回复
给你两种思路:

1、后面的加起来减去前面的,就是重复的数字
2、或者是将第二个数组排序,然后两两比较,a[i]和a[i+1]比较,就知道那个重复了
  • 打赏
  • 举报
回复
是的阿,关键不知道是不是这个意思,否则怎么叫“好难的”阿。。。。
hyzhx 2008-04-13
  • 打赏
  • 举报
回复
按照楼上的理解,利用计数排序,借助第一个数组存放第二个数组中各个元素的数目,最后遍历数组一,输出计数为2的数组下标。
时间复杂度为o(n)。
  • 打赏
  • 举报
回复
题目是什么意思啊,是不是说一个数组1 中存放 {1,2,3,4}
数组2中存放 {1,2,2,3,4}, 就是要找出那一个重复的数阿?

如果是这样好像和数组1,数组2没有关系啊,你的意思是100个格子里放99个数,肯定有一个数重复就是要找出这个数?

如果是这个意思,那很简单阿,我说的这个意思是不是啊,如果是的那我再写代码了。
J_Factory 2008-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 classnameextendsjava 的回复:]
? 好难的线程题 [J2EE / EJB / JMS] 40 lc2tp
04-13 22:28 0
管理

好难哦 不会
[/Quote]
真的很难
  • 打赏
  • 举报
回复
? 好难的线程题 [J2EE / EJB / JMS] 40 lc2tp
04-13 22:28 0
管理

好难哦 不会

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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