https://codility.com/programmers/lessons/1-iterations/Was ist die zeitliche Komplexität dieser Lösung O (N) oder O (LogN)?
In Anbetracht dieser:
if (largestHole > (bin.length - i) && subHole < (bin.length - i)) {
break;
}
Wenn die Länge des größten Loch weit so geringer ist als die Länge der verbleibenden Ziffern
es bricht die Schleife überprüfen Diese Linie let bin = parseInt(N, 10).toString(2);
ist wandle eine Zahl von Base 10 in Base 2 String um, über die ich iteriere.
function solution(N) {
let bin = parseInt(N, 10).toString(2);
let subHole = 0;
let largestHole = 0;
for (var i = 0; i < bin.length; i++) {
if (largestHole > (bin.length - i) && subHole < (bin.length - i)) {
break;
}
if (bin[i] === '0') { subHole++; }
else {
if (subHole > largestHole) {
largestHole = subHole;
}
subHole = 0;
}
}
return largestHole;
}
https://codility.com/programmers/lessons/1-iterations/
was macht parseInt (a, b)? –
Die Funktion durchläuft alle Ziffern, also ist es O (n) (wobei * n * die Anzahl der Binärziffern im Eingabewert ist). Um O (log n) zu sein, müsste es signifikant anders sein. – Pointy
@YogeshPatil es bedeutet Parse a using base b. –