java编写程序
问题
有两组数据,分别包括m和n个整数,每组数据的整数不重复且按从小到大次序排列,请输出所有在两组数据中同时存在的整数
/**
* 获取集合a与集合b的交集 返回泛型类型以集和b为主
* @param a 相对少集
* @param b 相对多集
* @return
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static List getRepeat(List a, List b){
List temp = new ArrayList<>();
for (int i = 0; i < a.size(); i++) {
for (int j = 0; j < b.size(); j++) {
if ((a.get(i).toString()).equals(b.get(j).toString())) {
temp.add(a.get(i));
}
}
}
return noRepeat(temp);
}
/**
* 去重
* @return
*/
public static List noRepeat(List a){
if (a != null) {
Set set = new HashSet<>(a);
a = new ArrayList<>();
a.addAll(set);
}
return a;
}
若没有算法效率要求,二个循环,大循环分别取第一数据的1~m个,然循环在1-~n数据中查找,找到就输出
若有效率要求,从少的数据在多的数据中查找(就是判m,n的大小)
而查找用二分搜索法
这些都是入门的基础
java编写的话,你劲量把基础给学好一些
全部遍历一遍穷举结果
这得有一定的功底