由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - 那个数组找duplicate的面试题
相关主题
请问一个有关选择数据结构的问题Re: unix环境下如何在java程序中执行命令行?
一道java面试题 (转载)Re: [转载] 如何看某个端口是否被占用?(use UNIX command or ..)
请问java里怎样将01字符串转换成bit流JAVA APPLICATION PATH 一问
Test your PC speed两个很基本的JAVA问题
折腾了一天,实在是绝望了,请教请教jdbc连接数据库出现的问题
Re: how to initialize corba object orb in servletDoes anyone know where I can find this?
说说clone咋违反了类继承的原则来的?问个Thread 的问题,java certificate里的
java Stringquestion on single thread & multithread
相关话题的讨论汇总
话题: bitset话题: duplicate话题: int话题: input话题: public
进入Java版参与讨论
1 (共1页)
T*********g
发帖数: 496
1
Java其实有一个标准的class在util包里,叫做bitset,它实现了一个按需增长的位向
量。所以某个integer可以被表达成位向量的某一个位是否被值成了1.内存就省了。
o***i
发帖数: 603
2
找有没有可以用bitset,因为只有有/没有(0/1)两种可能
但是找重复,就有三种可能了,没有/有一个/重复,你bitset怎么搞?

【在 T*********g 的大作中提到】
: Java其实有一个标准的class在util包里,叫做bitset,它实现了一个按需增长的位向
: 量。所以某个integer可以被表达成位向量的某一个位是否被值成了1.内存就省了。

e*****t
发帖数: 1005
3
folks,这题难道不是做加法?

【在 o***i 的大作中提到】
: 找有没有可以用bitset,因为只有有/没有(0/1)两种可能
: 但是找重复,就有三种可能了,没有/有一个/重复,你bitset怎么搞?

T*********g
发帖数: 496
4
public class FindDuplicate {
public static void main(String[] args) {
int[] input = {1, 2, 3, 4, 5, 6, 1, 3, 4};
BitSet bitSet = new BitSet();
for (int i : input) {
if (bitSet.get(i)) {
System.out.println("duplicate is " + i);
} else {
bitSet.set(i);
}
}
}
}
呵呵

【在 o***i 的大作中提到】
: 找有没有可以用bitset,因为只有有/没有(0/1)两种可能
: 但是找重复,就有三种可能了,没有/有一个/重复,你bitset怎么搞?

z*******3
发帖数: 13709
5
加法是简单的O(N)空间复杂度
复杂的要做交换,可以节省空间

【在 e*****t 的大作中提到】
: folks,这题难道不是做加法?
z*******3
发帖数: 13709
6
这个从本质上说是O(N)的解法
类似用int来判断ascii用<<,>>,&,|来判断的方法
做swap可以做出O(1)的解法
当N->无穷大的时候,还是很浪费空间
good to know there is a class like this though

【在 T*********g 的大作中提到】
: public class FindDuplicate {
: public static void main(String[] args) {
: int[] input = {1, 2, 3, 4, 5, 6, 1, 3, 4};
: BitSet bitSet = new BitSet();
: for (int i : input) {
: if (bitSet.get(i)) {
: System.out.println("duplicate is " + i);
: } else {
: bitSet.set(i);
: }

T*********g
发帖数: 496
7
会不会整数溢出呢?

【在 e*****t 的大作中提到】
: folks,这题难道不是做加法?
b***i
发帖数: 3043
8
加法或者xor是O(1)空间复杂度,O(N)时间复杂度

【在 z*******3 的大作中提到】
: 加法是简单的O(N)空间复杂度
: 复杂的要做交换,可以节省空间

T*********g
发帖数: 496
9
cut the crap , show me your code

【在 z*******3 的大作中提到】
: 这个从本质上说是O(N)的解法
: 类似用int来判断ascii用<<,>>,&,|来判断的方法
: 做swap可以做出O(1)的解法
: 当N->无穷大的时候,还是很浪费空间
: good to know there is a class like this though

z*******3
发帖数: 13709
10
 早就有人写出来了
你自己不看

【在 T*********g 的大作中提到】
: cut the crap , show me your code
z*******3
发帖数: 13709
11
对哦
想起来了
你说得对

【在 b***i 的大作中提到】
: 加法或者xor是O(1)空间复杂度,O(N)时间复杂度
o***i
发帖数: 603
12
赞!

【在 T*********g 的大作中提到】
: public class FindDuplicate {
: public static void main(String[] args) {
: int[] input = {1, 2, 3, 4, 5, 6, 1, 3, 4};
: BitSet bitSet = new BitSet();
: for (int i : input) {
: if (bitSet.get(i)) {
: System.out.println("duplicate is " + i);
: } else {
: bitSet.set(i);
: }

1 (共1页)
进入Java版参与讨论
相关主题
question on single thread & multithread折腾了一天,实在是绝望了,请教请教
Urgent help! Java relative file pathRe: how to initialize corba object orb in servlet
is there anyway that i can return...说说clone咋违反了类继承的原则来的?
新手求助,急急急!!!java String
请问一个有关选择数据结构的问题Re: unix环境下如何在java程序中执行命令行?
一道java面试题 (转载)Re: [转载] 如何看某个端口是否被占用?(use UNIX command or ..)
请问java里怎样将01字符串转换成bit流JAVA APPLICATION PATH 一问
Test your PC speed两个很基本的JAVA问题
相关话题的讨论汇总
话题: bitset话题: duplicate话题: int话题: input话题: public