抢分,算法问题

extraleo 2007-12-05 11:57:29
有2个数组A和B(都是数字)
怎么样最快的找到A 和B相同的部分?
...全文
326 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
小远 2007-12-06
  • 打赏
  • 举报
回复
果然都是学JAVA的...这是算法题..为快不是让想方法实现面向对象思想到都不错
wangjemmy 2007-12-06
  • 打赏
  • 举报
回复
虽然不配合该版,不过提一下C# 3.0

string[] a = {"1","2","3","4","5","3","4"};
string[] b = {"3","4","5","6"};
string[] c = a.Intersect(b).ToArray();
foreach(string s in c)
Console.WriteLine(s)

或者:
string[] a = {"1","2","3","4","5","3","4"};
string[] b = {"3","4","5","6"};
var s=from c in b where a.Contains(c)
select c;
foreach(string s in c)
Console.WriteLine(s)


he156294775 2007-12-06
  • 打赏
  • 举报
回复
数据结构里有个字符串的匹配算法,回去找本就能看明白.
zhangbaokun 2007-12-06
  • 打赏
  • 举报
回复
操作不了指针再快能快到哪去,要快就不在这弄了
karlpan01 2007-12-05
  • 打赏
  • 举报
回复
那个大哥叫lip009!
http://topic.csdn.net/u/20071113/18/9fa94e23-df29-432f-8e21-b9498cb00a0d.html
再把那个帖子给你,你自己看吧!
karlpan01 2007-12-05
  • 打赏
  • 举报
回复
又是这样的帖子!

public class Test{
/**
* 获取两个整型数组之间的重复元素集合
* @param array1 数组参数1
* @param array2 数组参数2
* @return
*/
public List findSame(int array1[],int array2[]){
List result=new ArrayList();//重复元素结果集合
HashMap hashMap=new HashMap();//利用hashmap来寻找重复元素
for(int i=0;i<array1.length;i++){//将第一个数组加入hashmap
String temp=array1[i]+"";
hashMap.put(temp,temp);
}
for(int i=0;i<array2.length;i++){//遍历第二个数组
String temp=array2[i]+"";
if(hashMap.get(temp)!=null){//在已经存在第一个数组所有元素的hashmap里寻找第二数组里的元素
result.add(array2[i]);//将重复出现的元素加入结果集合
}
}
return result;
}

public static void main(String args[]){
long timeBegin=System.currentTimeMillis();
int a[] = {1, 6, 2, 8, 5, 8, 6, 9, 0};
int b[] = {4, 5, 4, 8, 7, 6, 2, 0};
//获取重复元素集合
List list=new Test().findSame(a, b);
//遍历输出重复元素
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}

这是那次一个大哥写的!
shan1119 2007-12-05
  • 打赏
  • 举报
回复
循环.
jinxfei 2007-12-05
  • 打赏
  • 举报
回复
指的是连续相同的子数组,还是所有相同的元素?
zhuode_001 2007-12-05
  • 打赏
  • 举报
回复

public class ss extends S {


public ss(double rrr){
super(rrr);

}

public double getArea(){
return 3.14*r;

}

public static void main(String[] args){
ss sss = new ss(10);
System.out.println(""+sss.getArea());
}
}

zhuode_001 2007-12-05
  • 打赏
  • 举报
回复
关注,顺便接分
zhangbaokun 2007-12-05
  • 打赏
  • 举报
回复
我晕死了用TreeSet就排序了,汗

import java.util.*;

public class Test
{
public final static String POEM="This this this one. a one sb SD sd";

public static void main(String[] args) {
String[] a = {"1","2","3","4","5","3","4"};
String[] b = {"3","4","5","6"};
Set s = new TreeSet(Arrays.asList(a));
s.retainAll(Arrays.asList(b));
System.out.println(s);
}

}
linxi1151 2007-12-05
  • 打赏
  • 举报
回复
String[] a = {"1","2","3","4","5","1","2"};
String[] b = {"3","4","5","6","1","2"};

象这样的字符窜算几部分相同的?运行出[3, 2, 1, 5, 4]这样的结果能行吗
zhitaorao 2007-12-05
  • 打赏
  • 举报
回复
问题解决了就好,何必在意哪一个方法呢?
zyclc 2007-12-05
  • 打赏
  • 举报
回复
5楼真有趣
czrjsj 2007-12-05
  • 打赏
  • 举报
回复
字符串中的相同部分可能不止一个
最好说明详细一点
mxx123 2007-12-05
  • 打赏
  • 举报
回复
用循环
醉面韦陀 2007-12-05
  • 打赏
  • 举报
回复
比较笨的方法:


import java.util.ArrayList;
import java.util.List;

/*
* 取数组相同部分
*/
public class CollectionTest {

public static void main(String[] args) {

int[] num_one={1,2,3,5,4,6};
int[] num_two={2,5,36,4,6};
someNum(num_one,num_two);
}

@SuppressWarnings("unchecked")
public static void someNum(int[] num_one, int[] num_two) {

List list=new ArrayList();
for(int num1 : num_one)
{
for(int num2 : num_two)
{
if(num1==num2)
{
list.add(num1);
}
}
}
showList(list);
}

public static void showList(List list) {

for(Object num : list)
{
System.out.println(num.toString());
}

}
}

lionest 2007-12-05
  • 打赏
  • 举报
回复
LS的不错!
malong_01223 2007-12-05
  • 打赏
  • 举报
回复
五楼的不好用!

*/
public static void main(String[] args) {
String[] a = {"1","2","3","4","5","3","4"};
String[] b = {"3","4","5","6"};
Set s = new HashSet(Arrays.asList(a));
s.retainAll(Arrays.asList(b));
System.out.println(s);
}


结果是[3, 5, 4]
我们希望借结果是[3, 4, 5]
zazxzx 2007-12-05
  • 打赏
  • 举报
回复
楼上好强 学习了
加载更多回复(2)
1.算法是程序的灵魂,优秀的程序在对海量数据处理时,依然保持高速计算,就需要高效的数据结构和算法支撑。2.网上数据结构和算法的课程不少,但存在两个问题:1)授课方式单一,大多是照着代码念一遍,数据结构和算法本身就比较难理解,对基础好的学员来说,还好一点,对基础不好的学生来说,基本上就是听天书了2)说是讲数据结构和算法,但大多是挂羊头卖狗肉,算法讲的很少。 本课程针对上述问题,有针对性的进行了升级 3)授课方式采用图解+算法游戏的方式,让课程生动有趣好理解 4)系统全面的讲解了数据结构和算法, 除常用数据结构和算法外,还包括程序员常用10大算法:二分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法、马踏棋盘算法。可以解决面试遇到的最短路径、最小生成树、最小连通图、动态规划等问题及衍生出的面试题,让你秒杀其他面试小伙伴3.如果你不想永远都是代码工人,就需要花时间来研究下数据结构和算法。教程内容:本教程是使用Java来讲解数据结构和算法,考虑到数据结构和算法较难,授课采用图解加算法游戏的方式。内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式、递归与回溯、迷宫问题、八皇后问题算法的时间复杂度、冒泡排序、选择排序、插入排序、快速排序、归并排序、希尔排序、基数排序(桶排序)、堆排序、排序速度分析、二分查找、插值查找、斐波那契查找、散列、哈希表、二叉树、二叉树与数组转换、二叉排序树(BST)、AVL树、线索二叉树、赫夫曼树、赫夫曼编码、多路查找树(B树B+树和B*树)、图、图的DFS算法和BFS、程序员常用10大算法、二分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法马踏棋盘算法。学习目标:通过学习,学员能掌握主流数据结构和算法的实现机制,开阔编程思路,提高优化程序的能力。

62,614

社区成员

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

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