由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一道msft题
相关主题
问一道题(5)
相关话题的讨论汇总
话题: value话题: int话题: global话题: index话题: item
进入JobHunting版参与讨论
1 (共1页)
d****o
发帖数: 1055
1
Describe a data structure for which getValue(int index), setValue(int index
, int value), and setAllValues(int value) are all O(1).
f*****e
发帖数: 2992
2
keep the version # of the global value in every element. get/set compare
local version # with the most recent version number of the global variable
and update it. If local # < global #, get gets global value, and update
local value and #, set sets local value and update local version #.

index

【在 d****o 的大作中提到】
: Describe a data structure for which getValue(int index), setValue(int index
: , int value), and setAllValues(int value) are all O(1).

l*********8
发帖数: 4642
3
vector +
bool isGloballySet;
Value globalValue;
???
l****c
发帖数: 782
4
大牛,C++里面的map就可以当mashtable用吗?有区别吗?谢谢

【在 l*********8 的大作中提到】
: vector +
: bool isGloballySet;
: Value globalValue;
: ???

S**I
发帖数: 15689
5
unordered_map in C++11

【在 l****c 的大作中提到】
: 大牛,C++里面的map就可以当mashtable用吗?有区别吗?谢谢
g****y
发帖数: 240
6
struct Item
{val,
timestamp
};
vector + Item global
C***U
发帖数: 2406
7
map和hashtable不一样
map是用tree来实现 查找时间不是O(1)的
hashtable是O(1)的查找时间

【在 l****c 的大作中提到】
: 大牛,C++里面的map就可以当mashtable用吗?有区别吗?谢谢
j*****o
发帖数: 394
8
看不懂= =

【在 g****y 的大作中提到】
: struct Item
: {val,
: timestamp
: };
: vector + Item global

l****c
发帖数: 782
9
谢谢,那C++里的map什么时候用呢?

【在 C***U 的大作中提到】
: map和hashtable不一样
: map是用tree来实现 查找时间不是O(1)的
: hashtable是O(1)的查找时间

l****c
发帖数: 782
10
谢谢,所以说,面试的时候需要用hash时,就把unordered_map弄出来就行了,是吗?

【在 S**I 的大作中提到】
: unordered_map in C++11
相关主题
问一道题(5)
进入JobHunting版参与讨论
g****y
发帖数: 240
11
就是vector中每个item多加一个timestamp来记录每个Item 的 modify timestamp.每次
getValue的时候,比较vector中Item存储的时间和global中存储的时间,返回较新的那
一个。

【在 j*****o 的大作中提到】
: 看不懂= =
d**********x
发帖数: 4083
12
ordered

【在 l****c 的大作中提到】
: 谢谢,那C++里的map什么时候用呢?
l****c
发帖数: 782
13
就是需要他们存储顺序的时候,是吗?谢谢

【在 d**********x 的大作中提到】
: ordered
Z*****Z
发帖数: 723
14


【在 f*****e 的大作中提到】
: keep the version # of the global value in every element. get/set compare
: local version # with the most recent version number of the global variable
: and update it. If local # < global #, get gets global value, and update
: local value and #, set sets local value and update local version #.
:
: index

d****o
发帖数: 1055
15
setAll怎么实现o(1)呢?

【在 g****y 的大作中提到】
: 就是vector中每个item多加一个timestamp来记录每个Item 的 modify timestamp.每次
: getValue的时候,比较vector中Item存储的时间和global中存储的时间,返回较新的那
: 一个。

c****p
发帖数: 6474
16
setAll的时候不更新每个元素的值。
只保留一个值和操作序号。

【在 d****o 的大作中提到】
: setAll怎么实现o(1)呢?
d****o
发帖数: 1055
17
嗯,明白了。这个方法不错。

【在 c****p 的大作中提到】
: setAll的时候不更新每个元素的值。
: 只保留一个值和操作序号。

a*******y
发帖数: 1040
18
看不懂,这个是by index的get, set

【在 f*****e 的大作中提到】
: keep the version # of the global value in every element. get/set compare
: local version # with the most recent version number of the global variable
: and update it. If local # < global #, get gets global value, and update
: local value and #, set sets local value and update local version #.
:
: index

p*****2
发帖数: 21240
19
大家说的都不错。这题倒不算难题。
j*****o
发帖数: 394
20
懂了。。。。好神奇。。。
这种题我肯定想不出来的。。
如果被考到。。要如实地说是我见过么。。

【在 g****y 的大作中提到】
: 就是vector中每个item多加一个timestamp来记录每个Item 的 modify timestamp.每次
: getValue的时候,比较vector中Item存储的时间和global中存储的时间,返回较新的那
: 一个。

相关主题
问一道题(5)
进入JobHunting版参与讨论
a****s
发帖数: 559
21
map不是最本质的数据结构,它可以由tree来实现,也可以由hashtable来实现,甚至可
以用array来实现(不过performance会很差)。
同样queue, stack也不是,它们可以由link list实现,也可以由array实现。想搞复杂
点,也可以由hashtable或tree来实现(不过这属于脱裤子放P!)

【在 C***U 的大作中提到】
: map和hashtable不一样
: map是用tree来实现 查找时间不是O(1)的
: hashtable是O(1)的查找时间

a****s
发帖数: 559
22
刚想通。比如一个数组array,get/set就直接用index。他设计了一个global变量来保
存setAll的value.而后,如果get(i),比较timestamps of global and array[i], 返
回timestamp最新的value;如果set(i,val),更新array[i]里的value and timestamp.

【在 a*******y 的大作中提到】
: 看不懂,这个是by index的get, set
p*****2
发帖数: 21240
23

这题的难度是中等偏下吧?

【在 j*****o 的大作中提到】
: 懂了。。。。好神奇。。。
: 这种题我肯定想不出来的。。
: 如果被考到。。要如实地说是我见过么。。

1 (共1页)
进入JobHunting版参与讨论
相关主题
问一道题(5)
相关话题的讨论汇总
话题: value话题: int话题: global话题: index话题: item