Daily Coding Problem 7MAY2020

I am subscribed to dailycodingproblem.com. From time to time I will share problems I attempt and have a discussion around it. My solution might have bugs or might not be the most efficient but it would be my attempt. Feel free to criticise.

Today's problem I got

This problem was asked by Uber.

Given an array of integers, return a new array such that each element at index i of the new array is the product of all the numbers in the original array except the one at i.

For example, if our input was [1, 2, 3, 4, 5], the expected output would be [120, 60, 40, 30, 24]. If our input was [3, 2, 1], the expected output would be [2, 3, 6].

Follow-up: what if you can't use division?

This was my solution in javascript. I am using the Javascript for Android app.

var numbers = [1, 2, 3, 4, 5];
var total = numbers.reduce( (a,b) => a * b );

for (i = 0; i < numbers.length; i++)
console.log(divide(total, numbers[i]));

function divide (a, b) {
if (a == 0) return 0;
if (a < b) return 0;
if (b <= a) return 1 + divide(a-b, b);

I remembered from my uni days that division could be done by recursion and subtraction.


Popular posts from this blog

Upcoming 2020 General Elections in Trinidad and Tobago

Our Silicon Valley in Trinidad and Tobago

Being a Manchester City fan