## SDE1 Interview Questions

- 4of 4 votes
Given three arrays A,B,C containing unsorted numbers. Find three numbers a, b, c from each of array A, B, C such that |a-b|+|b-c| +|c-a| is minimum.

- 0of 0 votes
Given two strings, return true if they are one edit away from each other, else return false. An edit is insert/replace/delete a character.

Ex. {"abc","ab"}->true, {"abc","adc"}->true, {"abc","cab"}->false

- 0of 0 votes
Given a linked list and a positive integer n, reverse the order of nodes in between n and last but n nodes.

example: 1->2->3->4->5, n=2. Output is 1->4->3->2->5

- 0of 0 votes
Given a postfix expression as a string, evaluate it and return the result. example : "423+*" ->20. The Postfix expression is well formed(need not check for bad expression)

- 0of 0 votes
Find the total number of connected components in a graph (there can be forests)

- 3of 3 votes
This is one of the interview questions during the Amazon SDE interview. Request your help in providing the solution.

Question - We are interested in building a special type of sequence. for a given number N, we want to arrange the numbers {1,1,2,2,3,3,... N,N} such that they have the following property.

For each number / in (1,N) there should be exactly / numbers between the first appearance of the number and the second appearance. Below example would clarify further.

Input:

A Single number N for which we want to produce the sequence.

Output:

A space separated list of sequence or NA if there is no possible sequence.

Example Input:

3

Example Output:

2 3 1 2 1 3

Explanation : There is 1 number between 1s(2). There are 2 numbers between the 2's(3 1 ). There are 3 numbers between the 3's(1 2 1 ).

- 0of 0 votes
This is one of the interview questions during the Amazon SDE interview. Request your help in providing the solution.

Question - We are interested in building a special type of sequence. for a given number N, we want to arrange the numbers {1,1,2,2,3,3,... N,N} such that they have the following property.

For each number / in (1,N) there should be exactly / numbers between the first appearance of the number and the second appearance. Below example would clarify further.

Input:

A Single number N for which we want to produce the sequence.

Output:

A space separated list of sequence or NA if there is no possible sequence.

Example Input:

3

Example Output:

2 3 1 2 1 3

Explanation : There is 1 number between 1s(2). There are 2 numbers between the 2's(3 1 ). There are 3 numbers between the 3's(1 2 1 ).

- 1of 1 vote
Design a data structure in which we can do all CRUD operations in O(1) ?

CRUD- Create, Retrieve, Update, Delete

- 0of 0 votes
You have an app that uses a 3rd party video player. The VP has the functionalities - play, pause, seek and close. On close, the VP makes a callback to your app. To the callback it sends the below parameters

* videoLengthInSecs

* VideoPart[]. VideoPart {startTime, endTime}. Denotes a continuous part of the video that was watched without any disturbance caused by pause, seek.

Your app should be able to determine whether the user has watched the entire video or not.

60, [{0, 30}, {30, 60}]

return boolean

- 0of 0 votes
There are n persons and k different type of dishes. Each person has some preference for each dish. Either he likes it or not. We need to feed all people. Every person should get atleast one dish of his chioce. What is the minimum number of different type of dishes we can order?

Input is n x k matrix boolean matrix.For each person a row represent his likes or not likes each row.

n = 6 k = 7

1 0 0 0 1 0 0

1 0 0 0 0 1 0

1 0 0 0 0 0 1

0 1 0 0 1 0 0

0 0 1 0 0 1 0

0 0 0 1 0 0 1

Output

3

Explanation

Take dish number 5,6,7.

- -1of 1 vote
An input device can read input of 8 bytes over 2 seconds. It needs control over an input buffer during this operation. A disk writer can write data of 16 bytes over 4 seconds to the disk. It too needs control over the data buffer for the duration of its operation.

Design a system that can capture input from input device and write it onto the disk. The interviewer explicitly asked for detailed code for the implementation.

---EDIT---

The input device thread cannot be blocked, if made to wait, data gets overwritten and we have to capture all data available to the input device

P.S.: I don't think we can use synchronized block from java since their locks cannot be interrupted, I have read up on trylock() mechanism but not entirely sure how the exact code would look like.

- 0of 0 votes
Implement a simple, persistent, thread-safe, cache, which should ideally be able to store up to 1 million product names.

- 0of 0 votes
On a screen, there are multiple rectangles drawn, when a user clicks on any point, find the smallest rectangle enclosing this point.

I could not come up with a solution. The end points of rectangles were given and also the the point where the mouse was kept was given.

- 0of 0 votes
Skynet

Skynet has grown to become the dominant force on earth and has almost completely wiped out the

human race. Skynet has been

building robots ever since it's inception and has been updating it's models every year while making

them better. Skynet wants to annihilate humanity completely. It plans to remove one last band of

humans lead by John Connor. Skynet thinks it can destroy these humans using only two of it's robots.

But Skynet doesn't want to send two robots with the same model number lest John Connor finds out a

weakness in that model and easily destroy both of them.

Skynet has at its disposal N robots and to save space Skynet has stored information about pairs of

robots belonging to the same model. If it doesn't have any info stored for a particular robot then it is

implied that the robot is the only one in that model.

Given these constraints, in how many ways can Skynet pick two robots to destroy John Connor and

his rag tag group of humans.

Inputs

N Total

number of robots. Each robot is assigned a number from 0 to N1

(2 <= N <= 100000)

P Number

of pairs for which Skynet has information (2 <= P <= 100000)

This is followed by P pairs. Each pair has two numbers P and P each where 0<=P <=N1

and

0<=P <=N1

and P != P

Output

Number of ways in which Skynet can select 2 robots such that both the robots are different models.

Example Input:

4 2

0 1

2 3

Example Output:

4

Explanation:

Here robots 0 and 1 are of one model, say model A. And 2 and 3 are of another model, say B.

Therefore the total number of

possibilities of picking 2 robots such that no two robots are of the same model are (

0, 2), (0, 3), (1, 2)

and (1, 4) = 4

- -1of 1 vote
numbers are coming

continuously containing 0’s and 1’s same as above. Now tell me what data structure

you will use to tell me the starting of 1’s in least common time ??

- 0of 0 votes
Can we find majority element optimally than O(n) ?

Following with what if array is sorted ?

- 0of 0 votes
Can we tell in almost constant time that a perticuler array dont have majority element ?

- 0of 0 votes
find sum of longest increasing subsequence ?

Not the maximum sum,sum of longest subsequence.

Eg. 1, 8,2, 3

ans-> 6

- 0of 0 votes
Given a N-ary Tree. Return true if it follows Sum Property otherwise false.

- 0of 0 votes
Given a mxn grid, each of it’s element be either ‘.’, ‘R’, ‘G’ or ‘B’,

where ‘.’ -> empty, ‘R’ -> Red, ‘G’ -> Green, ‘B’ -> Blue

A Blue strip has width 1 and length greater or equal to one.

A Red strip has length 1 and width greater or equal to one.

If a Red strip and a Blue strip overlaps, the overlapped portion will become ‘G’.

Find the minimum number of strips required to cover the whole grid.

1<= m,n <=100

Input

5 5

..B..

..GRR

..B..

R....

R....

Output

4

- 2of 2 votes
Given a sorted array with only 0's and 1's.Count the number of 0's.

e.g: 0 0 0 0 1 1

Ans: 4.

- 2of 2 votes
Given n (of size m) Linked lists

Print all set(head of linked list) of link list that intersect with each other.

e.g.

1-->2-->3-->4-->5

6-->7-->8-->4-->5

8->9->10->11->12

13->14->15->12

16->17->18

1 6

8 13

16

- 0of 0 votes
A non-empty zero-indexed array A consisting of N numbers is given. The absolute distinct count of this array is the number of distinct absolute values among the elements of the array.

For example, consider array A such that

A[0] = -5 A[1] = -3 A[2] = -1

A[3] = 0 A[4] = 3 A[5] = 6

The absolute distinct count of this array is 5, because there are 5 distinct absolute values among the elements of this array, namely 0, 1, 3, 5 and 6.

Write a function

int absDistinct(int A[], int n);

that, given a non-empty zero-indexed array A consisting of N numbers, returns absolute distinct count of array A.

Assume that:

array A is sorted;

N is within the range [1..100,000];

each element of array A is an integer within the range [-2,147,483,648..2,147,483,647].

For example, given array A such that

A[0] = -5 A[1] = -3 A[2] = -1

A[3] = 0 A[4] = 3 A[5] = 6

the function should return 5, as explained above.

?

- 0of 0 votes
A magnitude pole of an array A consisting of N integers is an index K such that all elements with smaller indexes have values lower or equal to A[K] and all elements with greater indexes have values greater or equal to A[K], i.e.

when and

when K < L < N.

For example, 5 is a magnitude pole of array A such that

A[0]=4, A[1]=2, A[2]=2, A[3]=3, A[4]=1, A[5]=4, A[6]=7, A[7]=8, A[8]=6, A[9]=9.

This array doesn't have any more magnitude poles.

Write a function

int magnitudePole(int A[], int n);

that given an array A consisting of N integers returns any of its magnitude poles. The function should return -1 if array A doesn't have any magnitude poles. Assume that . Assume that each element of the array is a non-negative integer not exceeding 1,000,000.

For example, given array A such that A[0]=4, A[1]=2, A[2]=2, A[3]=3, A[4]=1, A[5]=4, A[6]=7, A[7]=8, A[8]=6, A[9]=9

the function should return 5, as explained above.

?

- 0of 0 votes
Design and code the sudoku solver.

- 0of 0 votes
There is a zoo and there are several groups(number of groups:K) of people for tour. Each group is having different size (g1,g2,g3…gK). There is one bus with capacity C. Journey starts from a point and bus will come back to the same point. A group can only be included in the bus if all the members of the groups can be accumulated in bus. After coming back from the tour, each group in the bus will again wait in the queue at the bus-stand. Bus-driver earns a rupee for each person travelled. You have to find the earning of the bus driver after R rounds.

For example :

Number of groups G = 4

Group size for each group : 2 4 3 5

Bus capacity : 7

Number of rounds R : 4

queue : (from front side) 2 4 3 5

First round : 2 4 (we can’t take 3rd group as 3 members can’t be accumulated after 2 and 4.)

queue : 3 5 2 4 (1st and 2nd group are enqueued. i.e. 2 and 4)

Second round : 3

queue : 5 2 4 3

Third Round : 5 2

queue : 4 3 5 2

Fourth Round : 4 3

After 4 rounds, total earning is 6+3+7+7 = 23.

- 0of 0 votes
Design a Traffic signal . List all entities and classes involved. How will you handle pedestrian crossings etc.

- 0of 0 votes
esign a contact list for a cell phone which can add & search really quick and is scalable.

- 0of 0 votes
Design a mobile cab booking application (just screens and functionalities) on board.

- 0of 0 votes
A sender will send a binary string to a receiver meanwhile he encrypt the digits. You are given a encrypted form of string. Now, the receiver needs to decode the string, and while decoding there were 2 approaches.

First, receiver will start with first character as 0; S[0] = 0, P[1] = S[1] + S[0], P[2] = S[2] + S[1] + S[0] and so on.

Second, Receiver will start with first character as 1; S[0] = 1, P[1] = S[1] + S[0], P[2] = S[2] + S[1] + S[0] and so on.

You need to print both the strings, after evaluation from both first and second technique. If any string will contain other that binary numbers you need to print NONE.