Thursday, November 21, 2013
LRU Cache
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations:
get and set.
get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1.set(key, value) - Set or insert the value if the key is not
already present. When the cache reached its capacity, it should
invalidate the least recently used item before inserting a new item.Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes' values.
For example:
Given binary tree
Note: Recursive solution is trivial, could you do it iteratively?
For example:
Given binary tree
{1,#,2,3}, 1
\
2
/
3
return [1,2,3].
Note: Recursive solution is trivial, could you do it iteratively?
Reorder List
reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…
You must do this in-place without altering the nodes' values.
For example,
Given
{1,2,3,4}, reorder it to {1,4,2,3}.
Sunday, November 3, 2013
Linked List Cycle
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
Can you solve it without using extra space?
Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return
null.
Follow up:
Can you solve it without using extra space?
Can you solve it without using extra space?
Saturday, October 5, 2013
Copy List with Random Pointers
Copy List with Random Pointer
A linked list is given such that each node contains an additional random pointer which
could point to any node in the list or null.
Return a deep copy of the list.
Subscribe to:
Posts (Atom)