Created
March 24, 2020 21:54
-
-
Save victorkurauchi/05194f772d8488cec619a9fda862f569 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// you can write to stdout for debugging purposes, e.g. | |
// console.log('this is a debug message'); | |
function solution(A) { | |
// write your code in JavaScript (Node.js 8.9.4) | |
let zeroCount = 0; | |
let combinations = 0; | |
A.forEach((n, index) => { | |
if (n === 0) { | |
zeroCount += 1; | |
} else { | |
combinations += zeroCount; | |
} | |
if (combinations > 1000000000) | |
return -1 | |
}) | |
return combinations; | |
} | |
/* | |
A non-empty array A consisting of N integers is given. The consecutive elements of array A represent consecutive cars on a road. | |
Array A contains only 0s and/or 1s: | |
0 represents a car traveling east, | |
1 represents a car traveling west. | |
The goal is to count passing cars. We say that a pair of cars (P, Q), where 0 ≤ P < Q < N, is passing when P is traveling to the east and Q is traveling to the west. | |
For example, consider array A such that: | |
A[0] = 0 | |
A[1] = 1 | |
A[2] = 0 | |
A[3] = 1 | |
A[4] = 1 | |
We have five pairs of passing cars: (0, 1), (0, 3), (0, 4), (2, 3), (2, 4). | |
Write a function: | |
function solution(A); | |
that, given a non-empty array A of N integers, returns the number of pairs of passing cars. | |
The function should return −1 if the number of pairs of passing cars exceeds 1,000,000,000. | |
For example, given: | |
A[0] = 0 | |
A[1] = 1 | |
A[2] = 0 | |
A[3] = 1 | |
A[4] = 1 | |
the function should return 5, as explained above. | |
Write an efficient algorithm for the following assumptions: | |
N is an integer within the range [1..100,000]; | |
each element of array A is an integer that can have one of the following values: 0, 1. | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment