- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来 self 的问题
Insert element to ArrayList with ascending order and no duplicate elements
我已经完成了插入方法。
现在我尝试找出如何构建并集、交集和差集方法来对 2 个 IntSet 进行操作。
请注意,IntSet 的元素数量很大,我需要在 O(m+n) 时间内完成,其中 m 和 n 是两个 IntSet 的元素数量。
例如 IntSets
a = new IntSetExtra();
b = new IntSetExtra();
for(int i=0; i<300; i++){ a.insert(2*i); }
for(int i=0; i<300; i++){ a.insert(i); }
for(int i=20000; i<50000; i++){ b.insert(i); }
我该怎么做?
附注它可以使用归并排序吗?
编辑:
这是我的工会代码
public IntSetExtra union(IntSetExtra a){
//effect: return new IntSet that union between this and a;
IntSetExtra intSet = new IntSetExtra();
intSet.addAll(a);
for(int i=0; i<a.size(); i++){
if(!intSet.contains(a.get(i))){
intSet.insert(a.get(i));
}
}
return intSet;
}
最佳答案
您可以只使用java集合的方法,例如addAll(Collection)
、removeAll(Collection)
和retainAll(Collection)
。
例如,两个集合的交集:
public Set<V> intersection(Set<? extends V> a, Set<? extends V> b) {
// you may swap a and b, so a would contain the smaller collection
Set<V> result = new HashSet<V>(a);
result.retainAll(b);
return result;
}
关于java - O(m+n) 次的并、交、差大 IntSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3601887/
对我来说,整数集似乎是一种可折叠的数据结构。 为什么是 Data.IntSet不是 Foldable 的实例? 我的实际意图是使用 find在 IntSet . 如何实现 Data.IntSet 的查
感谢 newtype 和 GeneralizedNewtypeDeriving 扩展,人们可以轻松定义不同的轻量级类型: newtype PersonId = PersonId Int derivin
我设计了使用 ArrayList 的新 IntSet 类。首先,我通过 ArrayList 扩展 Intset 并开始实现方法。我在 union() 方法中遇到了一些问题。这是我的代码... publ
来 self 的问题 Insert element to ArrayList with ascending order and no duplicate elements 我已经完成了插入方法。 现在
根据 Redis's memory optimization page可以设置可配置的 set-max-intset-entries 以优化大型整数集的内存。我用小于 2M 的整数做了一些测试,将 s
我是一名优秀的程序员,十分优秀!