由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 总结一下面试(CS related)的准备活动,希望有帮助.
相关主题
要电面小印,CS QA, 求能考察真实水平的题目,算法,数据结构等贴一个google 面题
Linkedin 工资不高啊问个amazon的题目
AVL 和 Red Back Tree 那个比较容易implement.请教一道Google面试题
报几个offer,包括f和boxAmazon的LRU设计题
T家 :: 面筋怎么设计分布式LRU cache?
麻烦2爷peking2帮个忙面试题
赞amazon西雅图的马博士一道关于cache的题
Google Phone InterviewLRU Cache Question
相关话题的讨论汇总
话题: 8226话题: list话题: write话题: two话题: user
进入JobHunting版参与讨论
1 (共1页)
j*****g
发帖数: 223
1
总结一下面试的准备活动,希望有帮助.
==================== AREAS/TOPICS to study/prep/review ====================
复习的东西还挺多的。比不过刚毕业的呀 :), 脑子不好使了,东西也差不多忘光了...
嘿嘿....
• Sorting
o Bubble/select/insertion/counting/qsort/heap/merge/bst
o Time/space complexity analysis
• Caching design
o Replacement policy (LRU, LFU, NRU, etc…)
o Efficiency/complexity/performance
o Distributed cache
o Hashing
• Multi-thread
o Locking/mutex/semaphore/critical section
o Coding pattern
 producer/consumer (aka writer/reader)
 ref-counting
• Tree
o Heap
o BST/black-red (BR/AVL is a stretch)
o B+
o Suffice/prefix trees (trie)
o Expression tree
• DP (dynamic programming)
• Search
o Basic backtrack
o Backtrack trimming
o Breadth first vs depth first search
o A*
o Bidirectional search
• Graph
o Shortest distance (djstra, floydwarshall)
o Cycle detection
o Flow network algorithms
• List
o Stack/queue/priority queue
o List manipulation
• Pattern matching
o Strict string matching
o Wildcard matching
• Bit operations
• Compression algorithm.
o Huffman
o RLE (run-length encoding)
o LZW
• Design
o Design pattern: singleton, factory, provider, witness, command,
etc
o OOP designs
 Interface vs abstract class
 Virtual behaviors
o Design a feature like:
 Twitter
 Facebook/linkedin friend recommendation
• C#/Java
o GC algorithm
• Tech
o Hadoop
o Mapreduce
o TSQL/SQL
o Memcached
o Membase
o Cassendra
• Reason to use/not to use STL/ATL
• Exception versus error code.
• Memory allocator/heap manager
==================== Actual coding/interview questions encountered lately =
===================
主要面试的对象集中在high scale/high perf/highly available/distributed
service infra areas. 所以题目有点偏..
仅供参考,并不准备一道一道解释回答。Sorry.
==============================================
1. Say a compare function f
F(x, y) returns 1, if x is better than y
F(x, y) returns 0, if x is not better than y (but doesn’t say x is worse
than y, it’s simply saying x isn’t better than y)
F is communitive: F(x, y) -> 1 then F(y, x) -> 0
But F isn’t transitive: F(x, y) -> 1 && F(y, z) -> 1, doesn’t mean F(x, z)
-> 1
So based on the rules above, write an efficient algorithm to find an element
in a list that is the best. If x is the best, it means for any y (that y !=
x) in the list, F(x, y) -> 1. The function can return NULL to indicate
there isn’t such an element exist.
==============================================
2. Two strings (ASCII, value range is 0 – 255), test, and alpha. Write a
function to return true if every character in test appears in alpha, and
return false otherwise.
==============================================
3. Say we have a simple file system on disk is like the following:
There are many consecutive sectors on disk, the sector 0 is the file index
table. Each of the following sector would either belong a file, or empty.
Each sector has a head structure, which contains info 1) whether this is an
empty sector or not and 2) if this is not an empty sector, so it belongs to
a file, then what’s the next sector in the file. If this field is null,
then this sector is the last sector for this particular file.
The file index table contains a list of entries, each has a file name, and
its first sector number.
Now somehow the sector 0 (file index table) is completely corrupted, write
an efficient algorithm to rebuild the file index table. Filenames can be
generated randomly as long as they’re unique.
==============================================
4. Say have a N computer, each computer gets assigned with a random
integer value. We need to write a single program, that the same program will
be run on all the N computers at the same time. At the end, every program
on each computer needs to print out the sum of all the integers associated w
/ all computers.
To achieve this, there are two synchronous blocking APIs to use.
Send(k, n): if a program calls this API, it means it wants to send an
arbitrary integer n to computer k (0 <= k < N).
Receive(k): if a program on computer j calls this API, it means it wants to
receive the integer from computer k where the program sends that integer to
computer j.
Both API are sync/blocking. That means if there is sender, but on the
receiving end, there is no receiver, then the sender will be blocked and
wait until corresponding receiving API is called on the target computer.
Vice versa.
Two metrics for achieving this goal. 1) # of msgs (send -> receive counts as
1 msg) and 2) assume each msg takes time t to complete, the total T.
Try to write the program to 1) achieve the goal and 2) try to optimize T so
T being the smallest
==============================================
5. Say you have an array of bytes (value is [0-255]), write an (LRE)
compression algorithm to offer fast, efficient, on the flight compression
and decompression.
==============================================
6. Given an integer array, calculate total number of pairs (x, y) in the
array, such as x > y.
For example, given an array of 5, 6, 2, 1
All the pairs that have descending order are:
5, 2
5, 1
6, 2
6, 1
2, 1
So result = 5.
==============================================
7. Minesweeper
a. Design data structure for the board and its mines
b. Given n (board width), m (board height), and k (number of mines),
efficiently and randomly generate k mines and place them in the board.
==============================================
8. itoa
==============================================
9. given an array of integers, find the smallest number; find two
smallest numbers; find k smallest numbers;
==============================================
10. F(a, b) -> true or false means that person a knows person b. But it’
s not commutative, because person a can know person b, but b may not know a.
Say, you throw a party, you knows a number of people, invite them, then each
of them knows a bunch of people (those sets of people can intersect), so on
and so forth.
Now there is a celebrity comes in, everyone in the party knows him, but he
knows no one.
Write an algorithm effectively find out who the celebrity is.
==============================================
11. Say you’re Walter Disney and you have so many copyrighted videos,
and you want to write an algorithm (high level description is good enough)
to detect any video clips on YouTube.com are violating copyrights.
==============================================
12. Given two identical length strings, say “abcdefg”, “bcdefgx”,
first define the distance (or think in search term, relevance) between these
two strings, and then write an algorithm.
==============================================
13. Master mind guess.
Say a random 6-digit number is generated and hidden secretly.
Then there is a function: int Tell(int n); where the n is any 6-digit number
, and the function Tell returns how many of the digits are correct and in
the right position.
For example, if the secret is “123456”, and Tell(“523499”) -> 3
Now write an algorithm such that you can call Tell to figure out what is the
secret number efficiently.
==============================================
14. a stream of integer coming in (in single link list fashion), you don
’t know how many, but you can use current->next == NULL to know if the
stream ends.
Now given a K (assume K < count of total number of element in the stream,
even though you don’t know the total number until you fully scan the stream)
Output randomly sampled K integers from this stream.
(reservoir-sampling)
This is very similar to #7, the random generate minesweeper problem.
==============================================
15. say two linked list may or may not merge at certain node. If they
merge, then it will be like a Y shape structure.
Write a function, taking two linked list and 1) return true/false whether
these two linked lists merge or not and 2) return the node where the merge
occurs.
==============================================
16. swap every pair two adjacent nodes in a linked list.
==============================================
17. Write a function to find the nth last element from a Linked List.
==============================================
18. Given a linked list, findout wether it is a palindrome or not,
Idea: find mid point, then compare.
==============================================
19.
struct node
{
int value;
node *next;
node *random_ref;
}
How to write a function to take a link list in such structure and dup it
into a new link list with both next and random_ref both honored for each
node in the new list?
==============================================
20. given two link lists, determine whether they’re reverse of each
other.
==============================================
21. 1) merge sort on array 2) merge short on linked list.
==============================================
22. LCS (longest common subsequence), given two string a, b, and
calculate their LCS value.
==============================================
23. edit distance. LCS is in fact a sub set of the edit distance problem
(aka Levenshtein distance)
Edit distance:
Two strings, a, b, use minimum number of following operations to make them
identical
Insert/delete/sub
While LCS, the set of operations allowed is insert/delete
And hamming distance, the set of operations allowed is only sub (thus two
strings must have the same length)
Dynamic programming.
==============================================
24. write a function to find mid point of a linked list. two methods 1)
two scans, and 2) use fast/slow pointers.
==============================================
25. find the longest palindrome in a string.
Solution1: Brute force
Solution2: string A, reverse it becomes A’, so the problem changes to find
the longest common substring . Note, it’s different than #22 below, that
one is about longest common subsequence. But the idea is the same using DP.
==============================================
26. Do you know about the recommendation engine built/used by Amazon.com
? How would you build one ? Now use what you know to build a relevancy
engine for Bing Search.
Backend module:
• Storage: for transactional data; logging; system health
• Caching:
Mid –tier modules:
• User module: retrieving user info, user history, user social info
(friends, etc).
• Product/action relevancy: if user click kindle, we should find
related products such as kindle cover, skins.
• Popularity module: for each item, what’s the popularity
• Campaign: amazon can have an active campaign promoting kindle, no
matter what user is doing 
• Feedback/improvement: once recommendations served, what are the
user follow-up actions, click through rate, etc, to retrain those numbers in
those components.
==============================================
27. Design a logging system for an application server? see to it that
Logging system you define does not include a large overhead in case of large
loads to server ?
• Lossless or eventual consistency or best effort?
• In memory ring buffer for speed (flight blackbox)
• Async persistent write
• Central collection mechanism such can be throttled and retried
easily
==============================================
28. How do you design cache server for a simple web application.
How do you make sure of the data consistancy.
How do update your data/cache.
==============================================
29. Design a Hotel reservation system which will support the following
functions.
a) User will get a list of all different types of rooms.
b) User selects a room type & check the room availabilty between the
specified dates.
c) User Makes Reservation.
[Discussed about "locking" the room availbilty or not in case if user wants
to proceed with reservation]
==============================================
30. If you were integrating a feed of end of day stock price information
(open, high, low, and closing price) for 5,000 companies, how would you do
it? You are responsible for the development, rollout and ongoing monitoring
and maintenance of the feed. Describe the different methods you considered
and why you would recommend your approach. The feed would be delivered once
per trading day in a comma-separated format via an FTP site. The feed will
be used by 1000 daily users in a web application
==============================================
31. Imagine that there are 7 servers running in parallel. What happens
when you need to expand to 20 live? What are issues? What could you do to
fix this issue in the future
==============================================
32. How to implement a LRU cache. Fast item retrieve, fast to kick LRU
item out, fast to add items in.
Combination of doubly linked list (dll) + hash.
Dll is a sorted list ordering from least to most recently used items.
Hash store to those items.
Operations need to be supported:
Get-item
Kickout-item
Update-item (means it’s been used, this can actually be folded into the get
-item)
Insert-item
Delete-item
Most these operations first go into hash map to find the key, and locate the
item in the linked list, then do certain operations such as remove, move to
head, move to tail, insert, etc.
More about caching strategies: http://faq.javaranch.com/java/CachingStrategies
==============================================
33. say char a-z maps to 1…26, A-Z maps to 27…52
Give you a numeric string sequence, such as "123", there would be multiple
possible mappings: "abc", "lc", "aw". But for "101", there is only one
possible mapping: "ja". And for "00", no possible mappings.
Write a function, given a numeric sequence in string, return the total
number of possible mappings.
==============================================
34. string/pattern matching. pattern can contain a-z and special chars
like "." and "*"
"." means matching any single char
"*" means matching zero or more chars of any kind.
string can contain a-z and "." "*". Note "." and "*" in string are just
regular chars, no special meanings.
i**********e
发帖数: 1145
2
谢谢楼主的总结,我觉得都非常全面,包含了CS的各个基础。而且有些问题很难,不好答。(A*这个算法能当场写出来也太牛了吧)
但是我觉得有些方面面试比较少会问的吧(就算问到也是解释概念就可以了,不会要求
coding),例如:
black-red (BR/AVL is a stretch)
Suffice/prefix trees (trie)
例如,black-red tree是用来干嘛的,suffix/prefix trees在哪一方面有所辅助,为
什么等等。因为这些都是比较复杂的,面试不宜问太复杂的算法。
比较常见的面试题几乎都逃不了 Linked list 和 Binary Tree,前者考你对 pointer
的熟练,后者则考你递归的思路。字符串处理也是常见题(尤其对C/C++语言程序员来
说)。
在object-oriented语言方面,时常被问到的有(以下针对的是C++语言):
1)什么是virtual function? virtual function 怎么在编译器里实现?
2)在何时destructor应该是virtual? 为什么?
3)怎么实现一个singleton?
以上的问题都可以在以下网站找到很好的解答:
http://www.parashift.com/c++-faq-lite/
在 O/S 方面,常问到的有 thread, deadlock,mutex 之类的问题,还有怎么写一个
thread-safe singleton class?
还有 thread 与 process 的区别有什么?
一些常见面试题的答案与总结 -
http://www.ihas1337code.com

==
..

【在 j*****g 的大作中提到】
: 总结一下面试的准备活动,希望有帮助.
: ==================== AREAS/TOPICS to study/prep/review ====================
: 复习的东西还挺多的。比不过刚毕业的呀 :), 脑子不好使了,东西也差不多忘光了...
: 嘿嘿....
: • Sorting
: o Bubble/select/insertion/counting/qsort/heap/merge/bst
: o Time/space complexity analysis
: • Caching design
: o Replacement policy (LRU, LFU, NRU, etc…)
: o Efficiency/complexity/performance

p********7
发帖数: 549
3
28. How do you design cache server for a simple web application.
How do you make sure of the data consistancy.
How do update your data/cache.
google电面就死在这里
g****x
发帖数: 3862
4
thanks
f*********u
发帖数: 6298
5
太及时了。
i***1
发帖数: 415
6

==
..

【在 j*****g 的大作中提到】
: 总结一下面试的准备活动,希望有帮助.
: ==================== AREAS/TOPICS to study/prep/review ====================
: 复习的东西还挺多的。比不过刚毕业的呀 :), 脑子不好使了,东西也差不多忘光了...
: 嘿嘿....
: • Sorting
: o Bubble/select/insertion/counting/qsort/heap/merge/bst
: o Time/space complexity analysis
: • Caching design
: o Replacement policy (LRU, LFU, NRU, etc…)
: o Efficiency/complexity/performance

j*****g
发帖数: 223
7
总结一下面试的准备活动,希望有帮助.
==================== AREAS/TOPICS to study/prep/review ====================
复习的东西还挺多的。比不过刚毕业的呀 :), 脑子不好使了,东西也差不多忘光了...
嘿嘿....
• Sorting
o Bubble/select/insertion/counting/qsort/heap/merge/bst
o Time/space complexity analysis
• Caching design
o Replacement policy (LRU, LFU, NRU, etc…)
o Efficiency/complexity/performance
o Distributed cache
o Hashing
• Multi-thread
o Locking/mutex/semaphore/critical section
o Coding pattern
 producer/consumer (aka writer/reader)
 ref-counting
• Tree
o Heap
o BST/black-red (BR/AVL is a stretch)
o B+
o Suffice/prefix trees (trie)
o Expression tree
• DP (dynamic programming)
• Search
o Basic backtrack
o Backtrack trimming
o Breadth first vs depth first search
o A*
o Bidirectional search
• Graph
o Shortest distance (djstra, floydwarshall)
o Cycle detection
o Flow network algorithms
• List
o Stack/queue/priority queue
o List manipulation
• Pattern matching
o Strict string matching
o Wildcard matching
• Bit operations
• Compression algorithm.
o Huffman
o RLE (run-length encoding)
o LZW
• Design
o Design pattern: singleton, factory, provider, witness, command,
etc
o OOP designs
 Interface vs abstract class
 Virtual behaviors
o Design a feature like:
 Twitter
 Facebook/linkedin friend recommendation
• C#/Java
o GC algorithm
• Tech
o Hadoop
o Mapreduce
o TSQL/SQL
o Memcached
o Membase
o Cassendra
• Reason to use/not to use STL/ATL
• Exception versus error code.
• Memory allocator/heap manager
==================== Actual coding/interview questions encountered lately =
===================
主要面试的对象集中在high scale/high perf/highly available/distributed
service infra areas. 所以题目有点偏..
仅供参考,并不准备一道一道解释回答。Sorry.
==============================================
1. Say a compare function f
F(x, y) returns 1, if x is better than y
F(x, y) returns 0, if x is not better than y (but doesn’t say x is worse
than y, it’s simply saying x isn’t better than y)
F is communitive: F(x, y) -> 1 then F(y, x) -> 0
But F isn’t transitive: F(x, y) -> 1 && F(y, z) -> 1, doesn’t mean F(x, z)
-> 1
So based on the rules above, write an efficient algorithm to find an element
in a list that is the best. If x is the best, it means for any y (that y !=
x) in the list, F(x, y) -> 1. The function can return NULL to indicate
there isn’t such an element exist.
==============================================
2. Two strings (ASCII, value range is 0 – 255), test, and alpha. Write a
function to return true if every character in test appears in alpha, and
return false otherwise.
==============================================
3. Say we have a simple file system on disk is like the following:
There are many consecutive sectors on disk, the sector 0 is the file index
table. Each of the following sector would either belong a file, or empty.
Each sector has a head structure, which contains info 1) whether this is an
empty sector or not and 2) if this is not an empty sector, so it belongs to
a file, then what’s the next sector in the file. If this field is null,
then this sector is the last sector for this particular file.
The file index table contains a list of entries, each has a file name, and
its first sector number.
Now somehow the sector 0 (file index table) is completely corrupted, write
an efficient algorithm to rebuild the file index table. Filenames can be
generated randomly as long as they’re unique.
==============================================
4. Say have a N computer, each computer gets assigned with a random
integer value. We need to write a single program, that the same program will
be run on all the N computers at the same time. At the end, every program
on each computer needs to print out the sum of all the integers associated w
/ all computers.
To achieve this, there are two synchronous blocking APIs to use.
Send(k, n): if a program calls this API, it means it wants to send an
arbitrary integer n to computer k (0 <= k < N).
Receive(k): if a program on computer j calls this API, it means it wants to
receive the integer from computer k where the program sends that integer to
computer j.
Both API are sync/blocking. That means if there is sender, but on the
receiving end, there is no receiver, then the sender will be blocked and
wait until corresponding receiving API is called on the target computer.
Vice versa.
Two metrics for achieving this goal. 1) # of msgs (send -> receive counts as
1 msg) and 2) assume each msg takes time t to complete, the total T.
Try to write the program to 1) achieve the goal and 2) try to optimize T so
T being the smallest
==============================================
5. Say you have an array of bytes (value is [0-255]), write an (LRE)
compression algorithm to offer fast, efficient, on the flight compression
and decompression.
==============================================
6. Given an integer array, calculate total number of pairs (x, y) in the
array, such as x > y.
For example, given an array of 5, 6, 2, 1
All the pairs that have descending order are:
5, 2
5, 1
6, 2
6, 1
2, 1
So result = 5.
==============================================
7. Minesweeper
a. Design data structure for the board and its mines
b. Given n (board width), m (board height), and k (number of mines),
efficiently and randomly generate k mines and place them in the board.
==============================================
8. itoa
==============================================
9. given an array of integers, find the smallest number; find two
smallest numbers; find k smallest numbers;
==============================================
10. F(a, b) -> true or false means that person a knows person b. But it’
s not commutative, because person a can know person b, but b may not know a.
Say, you throw a party, you knows a number of people, invite them, then each
of them knows a bunch of people (those sets of people can intersect), so on
and so forth.
Now there is a celebrity comes in, everyone in the party knows him, but he
knows no one.
Write an algorithm effectively find out who the celebrity is.
==============================================
11. Say you’re Walter Disney and you have so many copyrighted videos,
and you want to write an algorithm (high level description is good enough)
to detect any video clips on YouTube.com are violating copyrights.
==============================================
12. Given two identical length strings, say “abcdefg”, “bcdefgx”,
first define the distance (or think in search term, relevance) between these
two strings, and then write an algorithm.
==============================================
13. Master mind guess.
Say a random 6-digit number is generated and hidden secretly.
Then there is a function: int Tell(int n); where the n is any 6-digit number
, and the function Tell returns how many of the digits are correct and in
the right position.
For example, if the secret is “123456”, and Tell(“523499”) -> 3
Now write an algorithm such that you can call Tell to figure out what is the
secret number efficiently.
==============================================
14. a stream of integer coming in (in single link list fashion), you don
’t know how many, but you can use current->next == NULL to know if the
stream ends.
Now given a K (assume K < count of total number of element in the stream,
even though you don’t know the total number until you fully scan the stream)
Output randomly sampled K integers from this stream.
(reservoir-sampling)
This is very similar to #7, the random generate minesweeper problem.
==============================================
15. say two linked list may or may not merge at certain node. If they
merge, then it will be like a Y shape structure.
Write a function, taking two linked list and 1) return true/false whether
these two linked lists merge or not and 2) return the node where the merge
occurs.
==============================================
16. swap every pair two adjacent nodes in a linked list.
==============================================
17. Write a function to find the nth last element from a Linked List.
==============================================
18. Given a linked list, findout wether it is a palindrome or not,
Idea: find mid point, then compare.
==============================================
19.
struct node
{
int value;
node *next;
node *random_ref;
}
How to write a function to take a link list in such structure and dup it
into a new link list with both next and random_ref both honored for each
node in the new list?
==============================================
20. given two link lists, determine whether they’re reverse of each
other.
==============================================
21. 1) merge sort on array 2) merge short on linked list.
==============================================
22. LCS (longest common subsequence), given two string a, b, and
calculate their LCS value.
==============================================
23. edit distance. LCS is in fact a sub set of the edit distance problem
(aka Levenshtein distance)
Edit distance:
Two strings, a, b, use minimum number of following operations to make them
identical
Insert/delete/sub
While LCS, the set of operations allowed is insert/delete
And hamming distance, the set of operations allowed is only sub (thus two
strings must have the same length)
Dynamic programming.
==============================================
24. write a function to find mid point of a linked list. two methods 1)
two scans, and 2) use fast/slow pointers.
==============================================
25. find the longest palindrome in a string.
Solution1: Brute force
Solution2: string A, reverse it becomes A’, so the problem changes to find
the longest common substring . Note, it’s different than #22 below, that
one is about longest common subsequence. But the idea is the same using DP.
==============================================
26. Do you know about the recommendation engine built/used by Amazon.com
? How would you build one ? Now use what you know to build a relevancy
engine for Bing Search.
Backend module:
• Storage: for transactional data; logging; system health
• Caching:
Mid –tier modules:
• User module: retrieving user info, user history, user social info
(friends, etc).
• Product/action relevancy: if user click kindle, we should find
related products such as kindle cover, skins.
• Popularity module: for each item, what’s the popularity
• Campaign: amazon can have an active campaign promoting kindle, no
matter what user is doing 
• Feedback/improvement: once recommendations served, what are the
user follow-up actions, click through rate, etc, to retrain those numbers in
those components.
==============================================
27. Design a logging system for an application server? see to it that
Logging system you define does not include a large overhead in case of large
loads to server ?
• Lossless or eventual consistency or best effort?
• In memory ring buffer for speed (flight blackbox)
• Async persistent write
• Central collection mechanism such can be throttled and retried
easily
==============================================
28. How do you design cache server for a simple web application.
How do you make sure of the data consistancy.
How do update your data/cache.
==============================================
29. Design a Hotel reservation system which will support the following
functions.
a) User will get a list of all different types of rooms.
b) User selects a room type & check the room availabilty between the
specified dates.
c) User Makes Reservation.
[Discussed about "locking" the room availbilty or not in case if user wants
to proceed with reservation]
==============================================
30. If you were integrating a feed of end of day stock price information
(open, high, low, and closing price) for 5,000 companies, how would you do
it? You are responsible for the development, rollout and ongoing monitoring
and maintenance of the feed. Describe the different methods you considered
and why you would recommend your approach. The feed would be delivered once
per trading day in a comma-separated format via an FTP site. The feed will
be used by 1000 daily users in a web application
==============================================
31. Imagine that there are 7 servers running in parallel. What happens
when you need to expand to 20 live? What are issues? What could you do to
fix this issue in the future
==============================================
32. How to implement a LRU cache. Fast item retrieve, fast to kick LRU
item out, fast to add items in.
Combination of doubly linked list (dll) + hash.
Dll is a sorted list ordering from least to most recently used items.
Hash store to those items.
Operations need to be supported:
Get-item
Kickout-item
Update-item (means it’s been used, this can actually be folded into the get
-item)
Insert-item
Delete-item
Most these operations first go into hash map to find the key, and locate the
item in the linked list, then do certain operations such as remove, move to
head, move to tail, insert, etc.
More about caching strategies: http://faq.javaranch.com/java/CachingStrategies
==============================================
33. say char a-z maps to 1…26, A-Z maps to 27…52
Give you a numeric string sequence, such as "123", there would be multiple
possible mappings: "abc", "lc", "aw". But for "101", there is only one
possible mapping: "ja". And for "00", no possible mappings.
Write a function, given a numeric sequence in string, return the total
number of possible mappings.
==============================================
34. string/pattern matching. pattern can contain a-z and special chars
like "." and "*"
"." means matching any single char
"*" means matching zero or more chars of any kind.
string can contain a-z and "." "*". Note "." and "*" in string are just
regular chars, no special meanings.
i***1
发帖数: 415
8

==
..

【在 j*****g 的大作中提到】
: 总结一下面试的准备活动,希望有帮助.
: ==================== AREAS/TOPICS to study/prep/review ====================
: 复习的东西还挺多的。比不过刚毕业的呀 :), 脑子不好使了,东西也差不多忘光了...
: 嘿嘿....
: • Sorting
: o Bubble/select/insertion/counting/qsort/heap/merge/bst
: o Time/space complexity analysis
: • Caching design
: o Replacement policy (LRU, LFU, NRU, etc…)
: o Efficiency/complexity/performance

r****t
发帖数: 10904
9
S*******0
发帖数: 198
10
很不错,收藏了
S*****s
发帖数: 2290
11
谢谢分享!!

==
..

【在 j*****g 的大作中提到】
: 总结一下面试的准备活动,希望有帮助.
: ==================== AREAS/TOPICS to study/prep/review ====================
: 复习的东西还挺多的。比不过刚毕业的呀 :), 脑子不好使了,东西也差不多忘光了...
: 嘿嘿....
: • Sorting
: o Bubble/select/insertion/counting/qsort/heap/merge/bst
: o Time/space complexity analysis
: • Caching design
: o Replacement policy (LRU, LFU, NRU, etc…)
: o Efficiency/complexity/performance

s*x
发帖数: 124
12
This is very helpful. One question, about "high scale/high perf/highly
available/distributed service infra", any book or website to recommend?
Thanks!
H***e
发帖数: 476
13
顶好文!

==
..

【在 j*****g 的大作中提到】
: 总结一下面试的准备活动,希望有帮助.
: ==================== AREAS/TOPICS to study/prep/review ====================
: 复习的东西还挺多的。比不过刚毕业的呀 :), 脑子不好使了,东西也差不多忘光了...
: 嘿嘿....
: • Sorting
: o Bubble/select/insertion/counting/qsort/heap/merge/bst
: o Time/space complexity analysis
: • Caching design
: o Replacement policy (LRU, LFU, NRU, etc…)
: o Efficiency/complexity/performance

g****v
发帖数: 971
14
百科全书式的复习。。。。。。
1 (共1页)
进入JobHunting版参与讨论
相关主题
LRU Cache QuestionT家 :: 面筋
软件实现LRU有什么困难么麻烦2爷peking2帮个忙
L家onsite悲剧 贡献个面经吧赞amazon西雅图的马博士
哪儿有设计题的总结?就是那种大规模系统设计方面的。Google Phone Interview
要电面小印,CS QA, 求能考察真实水平的题目,算法,数据结构等贴一个google 面题
Linkedin 工资不高啊问个amazon的题目
AVL 和 Red Back Tree 那个比较容易implement.请教一道Google面试题
报几个offer,包括f和boxAmazon的LRU设计题
相关话题的讨论汇总
话题: 8226话题: list话题: write话题: two话题: user