DEV Community

Discussion on: Kotlin - Smart Solutions #0

Collapse
 
amitkusrivastava profile image
Amit

Thanks for sharing the post. The same could have being achieved using zipNext and summing the difference between each pair. Wondering which solution will be more optimized behind the scene.

Collapse
 
henrique_horbovyi profile image
Henrique Horbovyi

That's awesome! Could you type some snippets? I'm very interested to compare these two solutions.
Thanks for the answer! :D

Collapse
 
amitkusrivastava profile image
Amit

Something like following:

fun main() {
    println(listOf(6, 2, 3, 8).sorted().zipWithNext().sumBy { (smallerStatueHeight, biggerStatueHeight) ->  biggerStatueHeight - smallerStatueHeight - 1})
}
Thread Thread
 
henrique_horbovyi profile image
Henrique Horbovyi • Edited

Great solution dude.
I'm comparing both solutions using measureTimeMillis()

Code

Thread Thread
 
henrique_horbovyi profile image
Henrique Horbovyi

I executed several times, and the result is always Time(caseA) < Time(caseB) :D
And nevermind the order of execution it will take more or less the same time for both

First Execution
Second Execution

Thread Thread
 
henrique_horbovyi profile image
Henrique Horbovyi

But the scenario changes a bit when I executed on Kotlin Playground
The results tend to be more approximated