Adobe interview Experience for CS-1, Bangalore location. I’ll share my experience in this post . I have around 5 years of experience working as a Java Developer(Backend). The interview was conducted as part of their hiring drive and all the interview rounds were online . The interviewers were very helpful.
Round 1:
- Given a sorted array having all the unique elements. and a target Sum. Find whether there exists a pair of elements in the array with the sum as the targetSum.
eg:
Arr={4, 5, 8, 10, 12, 15, 20} targetSum = 23
Op: Yes. (8, 15)
Java
public int [] findPair( int [] arr, int sum)
{
int [] res = new int [ 2 ];
int l = 0 ;
int r = arr.length - 1 ;
while (l < r) {
int temp = arr[l] + arr[r];
if (temp > sum)
r--;
else if (temp < sum)
l++;
else {
res[ 0 ] = arr[l];
res[ 1 ] = arr[r];
break ;
}
}
return res;
}
|
- Given an Unbalanced Binary Search Tree. Find the Second highest element in the tree.
Java
Node getSecondMax(Node root) { return util(root, null ); }
Node util(Node root, Node prev)
{
if (root == null )
return root;
if (root.right != null ) {
prev = root;
return util(root.right, prev);
}
else {
if (root.left == null )
return prev;
else
return getRight(root.left);
}
}
Node getRight(Node root)
{
if (root == null )
return root;
if (root.right == null )
return root;
if (root.right != null )
return getRight(root.right);
}
|
Round 2: System Design
- Design an Online Playlist having the following functionalities exposed to the end user.
- search by artist name/song name/genre/year of release/album name
- sort by year of release/no. of hits(likes)
- recommend similar playlist
- resumePlaylist from lastsaved point
Round 3: Manager Round
- Given an array of Unsorted integers and a value k. Find the k smallest elements from the array.
eg: arr={6,3,6,2,2,4,7} k=4
op: 2,2,3,4
Java
public void kSmallestElements( int [] arr, int k)
{
PriorityQueue<Integer> pq = new PriorityQueue<Integer>(
Collections.reverseOrder());
if (k >= arr.length) {
for ( int i : arr)
System.out.print(i + " " );
return ;
}
for ( int i = 0 ; i < k; i++) {
pq.add(arr[i]);
}
for ( int i = k; i < arr.length; i++) {
int max = pq.peek();
if (arr[i] < max) {
pq.poll();
pq.add(arr[i]);
}
}
for ( int i = 0 ; i < k; i++) {
System.out.print(pq.poll() + " " );
}
}
|
- System Design: Design an online Flight reservation system having the features:
- Searching for flights between destinations on a given date
- book the flight
- retrieve the bookings of a user
Round 4:
- The final round was taken by a senior person, maybe the director of engineering, and he asked me to design the system where multiple users are booking for a same seat in apps such as BookMyShow. How to handle the concurrency when multiple users want to book the same resource simultaneously.
Result: I got a call from HR after 2 days saying that I was selected.
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!