Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
JS Fork
Added random tests
Not StackOverflowException, just OverflowException ;)
[10,10] is the correct solution in that case
🐄
Tests have evolved since
how did you passsed test?
Added
No random tests in JS
for input like [8,10,10,1] you'll get [10,10] instead of [8,10]
mutating array isn't
This can be solved in O(N) time & O(1) space.
no sample tests (JS)
I have basically no background in algorythm efficiency analysis so I don't focus on it ever so thank you for the explanation and suggestion; I would implement your solution using a
.reduce()
but it would equate to the same thing.I imagine that there are more difficult kata where efficiency of the solution plays a part in success or not and I actually avoid those as it isn't something that I have ever needed to take into account.
If you were to use
Array.sort()
, first create a new array by doingarray.slice(0)
, which will create a shallow copy of the input array. Then it can be sorted without mutating the input.However, just using a simple for loop allows you to complete this Kata in
O(n)
instead ofO(n log(n))
; Using sort means that for large arrays you're going to see a huge performance disadvantage versus just finding the max and second max using a for loop.Loading more items...