Zocdoc Interview Question: Given an integer array, write... | Glassdoor

## Interview Question

Senior Software Engineer Interview New York, NY

# Given an integer array, write a program that returns an

array with elements = product of the integers in input array except the one in its position. Ex: Given input: [2, 3, 10, 4, 5], output: [600, 400, 120, 300, 240] What is the complexity of your program? When will your program not work? Below is what I presented (O(n)), but it did not qualify me for the next round.

2

public int product(List input)
{
int product = 1;
foreach(int i in input)
{
product = product * i;
}
return product;
}

public void printOutput(List input)
{
foreach(int i in input)
Console.WriteLine(i);
}

public List multiply(List input)
{
List output = new List{};

int total_product = product(input);
foreach(int i in input)
{
}
return output;
}

public void main()
{
List input = new List{&quot;2&quot;,&quot;3&quot;,&quot;10&quot;,&quot;4&quot;,&quot;5&quot;};
printOutput(multiply(input));
}

Interview Candidate on Jun 9, 2014
1

If the pre condition is none zero integer list then I think the answer is correct.

h on Jul 28, 2014
0

This is not O(n). Your product() function alone is O(n). This is actually O(2n).

Anonymous on Sep 25, 2014
1

While the above solution does iterate the list twice, that doesn't matter for asymptotic runtime - it's still O(n).

Anonymous on Apr 5, 2015

This post has been removed.