1
1
mirror of https://github.com/theoludwig/programming-challenges.git synced 2024-10-29 22:17:23 +01:00

Add "find-outlier-number" challenge

This commit is contained in:
Divlo 2020-07-05 20:39:40 +02:00
parent dd075269f2
commit b06df550bb
5 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,11 @@
# find-outlier-number
Created by [@Divlo](https://github.com/Divlo) at 5 July 2020.
## Instructions :
You are given an array (which will have a length of at least 3, but could be very large) containing integers. The array is either entirely comprised of odd integers or entirely comprised of even integers except for a single integer `N`. Write a function that takes the array as an argument and returns this "outlier" `N`.
## Examples :
See the `input-output.json` file for examples of input/output.

View File

@ -0,0 +1,26 @@
[
{
"input": [[2, 4, 0, 100, 4, 11, 2602, 36]],
"output": 11
},
{
"input": [[160, 3, 1719, 19, 11, 13, -21]],
"output": 160
},
{
"input": [[0, 1, 2]],
"output": 1
},
{
"input": [[1, 2, 3]],
"output": 2
},
{
"input": [[2, 6, 8, 10, 3]],
"output": 3
},
{
"input": [[1, 1, 0, 1, 1]],
"output": 0
}
]

View File

@ -0,0 +1,4 @@
# typescript-outlier - find-outlier-number
Programming language : TypeScript
Created by [@Divlo](https://github.com/Divlo) at 5 July 2020.

View File

@ -0,0 +1,26 @@
interface NumberObject {
value: number
index: number
}
function isOdd (number: number): boolean {
return number % 2 !== 0
}
function solution (numbers: number[]): number {
const oddNumbers: NumberObject[] = []
const evenNumbers: NumberObject[] = []
numbers.forEach((number, index) => {
const numberObject: NumberObject = { value: number, index }
return isOdd(number)
? oddNumbers.push(numberObject)
: evenNumbers.push(numberObject)
})
const isValueThatDiffersFromOthers =
oddNumbers.length === 1 ? oddNumbers[0] : evenNumbers[0]
return isValueThatDiffersFromOthers.value
}
export default solution