由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问一道题(5)
相关主题
一道msft题请教个面经里的设计题
G onsite面经兼求内推请教一道面试题
关于Implement hashtable的问题C++ Q52: (C6)
发个evernote的code challengeC++ online Test 一题
来讨论个uber的电面题问两道onsite题目
Amazon Second phone谁能科普Time Series Daemon (TSD)系统设计
Amazon电面面经一个C++的问题!
刚刚面的bloomber Inter,应该没戏了,上 面筋。。F家的一道题。看起来好像很凶残的样子。求大家给思路给想法。。囧
相关话题的讨论汇总
话题: hashmap话题: int话题: setvalue话题: clear
进入JobHunting版参与讨论
1 (共1页)
f*********d
发帖数: 140
1
Describe a data structure for which
getValue(int index)
setValue(int index, int value)
setAllwalues(int value)
are all O(1)
题目来之MS
z****e
发帖数: 54598
2
hashmap + private Integer allValues
如果setAllvalues的时候,记得clear map
get时候,先查hashmap,再看allValues是不是为空
f*********d
发帖数: 140
3
嗯,学习了!
对了,c++, java 里面各种clear 的复杂度(e.g., clear map)可以认为是O(1)的吧?

【在 z****e 的大作中提到】
: hashmap + private Integer allValues
: 如果setAllvalues的时候,记得clear map
: get时候,先查hashmap,再看allValues是不是为空

z****e
发帖数: 54598
4
如果不是的话
hashmap = new HashMap();

【在 f*********d 的大作中提到】
: 嗯,学习了!
: 对了,c++, java 里面各种clear 的复杂度(e.g., clear map)可以认为是O(1)的吧?

f*********d
发帖数: 140
5

合情合理
鞠躬致敬~

【在 z****e 的大作中提到】
: 如果不是的话
: hashmap = new HashMap();

s*******n
发帖数: 305
6

为啥setAllvalues 会是O(1)?

【在 z****e 的大作中提到】
: hashmap + private Integer allValues
: 如果setAllvalues的时候,记得clear map
: get时候,先查hashmap,再看allValues是不是为空

v****p
发帖数: 53
7
Hashmap 不支持index 吧. 应该用Vector?

【在 z****e 的大作中提到】
: hashmap + private Integer allValues
: 如果setAllvalues的时候,记得clear map
: get时候,先查hashmap,再看allValues是不是为空

r*********n
发帖数: 4553
8
显然不是,比如c++里面unordered_map clear,每个元素的destructor都要被调用一次。
我不熟悉java,但是我觉得下面这行
hashmap = new HashMap();
只是把destructor call的时间推迟到garbage collection的时候,但是应该还是
linear time吧。

【在 f*********d 的大作中提到】
: 嗯,学习了!
: 对了,c++, java 里面各种clear 的复杂度(e.g., clear map)可以认为是O(1)的吧?

b******7
发帖数: 92
9
clear应该做不到O(1)。
我的想法是加设置commonValue,并加入时间戳区别setValue与setAllValues的调用先
后关系,若setValue比setAllValues先调用则返回hashmap中的值,否则返回
commonValue。具体code见http://blog.sina.com.cn/s/blog_979956cc0101hs1a.html
l******9
发帖数: 26
10
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/
HashMap 的 clear() 复杂度是 O(n)

【在 f*********d 的大作中提到】
: Describe a data structure for which
: getValue(int index)
: setValue(int index, int value)
: setAllwalues(int value)
: are all O(1)
: 题目来之MS

r*********n
发帖数: 4553
11
赞...这个方法不错

【在 b******7 的大作中提到】
: clear应该做不到O(1)。
: 我的想法是加设置commonValue,并加入时间戳区别setValue与setAllValues的调用先
: 后关系,若setValue比setAllValues先调用则返回hashmap中的值,否则返回
: commonValue。具体code见http://blog.sina.com.cn/s/blog_979956cc0101hs1a.html

f*********d
发帖数: 140
12
牛,好方法!
学习了~

【在 b******7 的大作中提到】
: clear应该做不到O(1)。
: 我的想法是加设置commonValue,并加入时间戳区别setValue与setAllValues的调用先
: 后关系,若setValue比setAllValues先调用则返回hashmap中的值,否则返回
: commonValue。具体code见http://blog.sina.com.cn/s/blog_979956cc0101hs1a.html

z****e
发帖数: 54598
13
这贴很好滴说明了c程序员和java程序员的区别
就拿这题而言
这些内存的使用,如果要考虑gc的话
最好的方法就是在你需要clear时候,整块扔掉
然后到了gc的时候,jvm自动清空这一块
有什么问题,比如linear清空map
这里可以单独做优化
当初想clear的目的主要是复用代码,节省内存
不过这一块已经越来越不提倡使用了,new越来越好了
如果引入额外的标记
不仅使得内存使用增加,因为有额外的变量占用内存
而且使得gc机制不能很好的工作,因为该清空的map不会被gc
有map的引用,内部所有储存的变量都不会被gc
最后这个map会越来越大
x***y
发帖数: 633
14
Good idea.
Another way of avoiding timestamp is to use the 3-array approach of setting
values in memory, which has initial garbage values.

【在 b******7 的大作中提到】
: clear应该做不到O(1)。
: 我的想法是加设置commonValue,并加入时间戳区别setValue与setAllValues的调用先
: 后关系,若setValue比setAllValues先调用则返回hashmap中的值,否则返回
: commonValue。具体code见http://blog.sina.com.cn/s/blog_979956cc0101hs1a.html

1 (共1页)
进入JobHunting版参与讨论
相关主题
F家的一道题。看起来好像很凶残的样子。求大家给思路给想法。。囧来讨论个uber的电面题
星期一福利:某公司店面题Amazon Second phone
新出炉的Google的offer+面经+包裹Amazon电面面经
G questions刚刚面的bloomber Inter,应该没戏了,上 面筋。。
一道msft题请教个面经里的设计题
G onsite面经兼求内推请教一道面试题
关于Implement hashtable的问题C++ Q52: (C6)
发个evernote的code challengeC++ online Test 一题
相关话题的讨论汇总
话题: hashmap话题: int话题: setvalue话题: clear