怎么做循环次数最少呢
有两个数组一个N 个元素,另一个M 个元素,这两个数组中有些元素是相同的,希望通过编写一段程序将两个数组中的相同元素找出来,请用最少的循环次数完成需求,请问
需要用什么方法? --------------------编程问答-------------------- 遍历数组A 把数据放入HashSet中,
遍历数组B ,if(!set.add(B[i])) 则当前数据在A中也同样存在 --------------------编程问答--------------------
HashSet里的循环也应该记在总循环次数中吧? --------------------编程问答-------------------- A B两个数组有序否?或者两列直接合并排序? --------------------编程问答-------------------- 先给两个数组排序再用二分查找 --------------------编程问答-------------------- for example
用集合的交并差方法可以不?
Object[] a = xxx;--------------------编程问答--------------------
Object[] b = yyy;
List<Object> l1 = new ArrayList<Object>(Arrays.asList(a));
List<Object> l2 = new ArrayList<Object>(Arrays.asList(b));
l1.retainAll(l2); //两个集合的交集
for (Object o : l1) {
System.out.println(o);
}
jdk1.7? --------------------编程问答-------------------- Object[] a;
Object[] b;
Map map=new HashMap();
for(int m=0;m<a.length;m++){
map.put(a[m],a[m]);
}
for(int n=0;n<b.length;n++){
if(map.get(b[n])!=null) System.out.println();
} --------------------编程问答--------------------
1.5或更早就有了吧,Collection的方法,早就很成熟了
--------------------编程问答-------------------- 集合求交集底层是怎么实现了,你知道循环了几次? --------------------编程问答--------------------
就觉得熟悉很,没找到地方 --------------------编程问答-------------------- 脑袋记不住啦。 --------------------编程问答-------------------- 交集1.5貌似就有了 --------------------编程问答--------------------
这样找效率确实是高,但是排序本身也需要循环,当然可以使用set接口下的类。 --------------------编程问答-------------------- public static void main(String[] args) {
String a[]={"0","1","2","3","4","5","6","7"};
String b[]={"5","6","7","8","9","10","11"};
Map map=new HashMap();
for(int m=0;m<a.length;m++){
map.put(a[m],a[m]);
}
for(int n=0;n<b.length;n++){
if(map.get(b[n])!=null)
System.out.println(b[n]);
}
} --------------------编程问答-------------------- 数据不太大的话感觉直接放到map里面直接map.containsKey()就行了,map查找肯定比List快 --------------------编程问答-------------------- 同意四楼的
补充:Java , Java相关