Amazon Interview Question for Software Engineer / Developers


Team: EBS
Country: United States
Interview Type: In-Person




Comment hidden because of low score. Click to expand.
0
of 0 vote

Keep a linked list of <Session, timestamp> pairs.
Keep a hash table of Session-> SessionTimestamp list node, for constant time lookup into the list above.
Every time a Session is used, find the list node, update the timestamp, and move the node to the end of the list. This means the list goes from last active, to latest active Sessions.

Every once in a while (SessionManager class can be an active object), go through the list and purge sessions that haven't been active in N seconds. Note that when you're going through the list purging Sessions, you can stop the search as soon as you reach a Session that has been active in the last N sessions, since the list is sorted.

- huio April 12, 2013 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

I will create threads. Will count the number of sessions at that time
Let say there are N sessions. Will create N/n threads let say every thread scans n sessions.
Now sessions can be removed based on their time stamp

- DashDash April 13, 2013 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 votes

The question mentions that there are millions session so creating millions of thread will not be effective.

- Nullpointerexception June 16, 2013 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 vote

I'd like to use Hashmap with doubly linked list

- aileen June 13, 2013 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

Use a max heap - arrange it using the 'last used' timestamp of the session objects. When a session is used, update its timestamp, remove it from the heap and heapify. Then place it back in the heap with the new timestamp.

Identifying the oldest sessions is Ologn.

- voidsstr July 24, 2013 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

i will use treemap with session as key and lastused time as value.
will provide a comparator to sort according to value in ascending order.
will purge all entries after lastused value 30 secs.

- saddham November 05, 2014 | Flag Reply


Add a Comment
Name:

Writing Code? Surround your code with {{{ and }}} to preserve whitespace.

Books

is a comprehensive book on getting a job at a top tech company, while focuses on dev interviews and does this for PMs.

Learn More

Videos

CareerCup's interview videos give you a real-life look at technical interviews. In these unscripted videos, watch how other candidates handle tough questions and how the interviewer thinks about their performance.

Learn More

Resume Review

Most engineers make critical mistakes on their resumes -- we can fix your resume with our custom resume review service. And, we use fellow engineers as our resume reviewers, so you can be sure that we "get" what you're saying.

Learn More

Mock Interviews

Our Mock Interviews will be conducted "in character" just like a real interview, and can focus on whatever topics you want. All our interviewers have worked for Microsoft, Google or Amazon, you know you'll get a true-to-life experience.

Learn More