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.
Not, for 34 i domt have to go to 17, its enough to go up to 5 or so.
100 is an example. For n = 34 you need go through (n / 2): 1, 2, 17 and finally N.
Why go to n/2? There's no need to go to n/2, you can get all divisors of 100 if you go up to 10, no need to go to 50.
Why not using (n / 2) in 'for-cycle' for comparing current value of 'i'?
For example, all integer divisors of 10 end at '5' (half of N), also as all inetegr divisors of 100 end at '50' (also half of N).
No need to go through all numbers from 'N / 2' to 'N'.
You are ${n-m} ${year} old.
would be betterwhy is that?
This kata throws a stackoverflow exception in Intellij
Can't we optimize this solution to make it O(sqrt(n))
That's a clever way of concatenating strings
Why
-n+m
instead ofm-n
?Not so beautiful but, anyway...
Codewars could have a button for bad solutions
Why people are voting "Best Practice" to a String concat loop?
string.toCharArray() underneath makes a copy of the String character array (defensive programming)
If we prepare array by making new char[string.lenth()] and then iterate trought string using chatAt(i) we could avoid one array copy
Also in Java 9 there is one big optimization in terms of String concatination, that is using
invokedynamic
bytecode code, but still it is not even close to rawStringBuilder
implementation as seen in discussion on SO:https://stackoverflow.com/questions/49458564/string-concatenation-in-a-for-loop-java-9/49466784
(
javap -c
bytecode text included)Thus: string concatination is optimized in trivial cases, but in loops they are still to be optimized by hand.
Loading more items...