https://codility.com/programmers/lessons/1-iterations/這個解決方案的時間複雜度是O(N)還是O(LogN)?
考慮到這一點:
if (largestHole > (bin.length - i) && subHole < (bin.length - i)) {
break;
}
如果最大孔的長度,到目前爲止小於其餘數字的長度,以檢查它打破了環
此行let bin = parseInt(N, 10).toString(2);
是將一個數字從基數10轉換爲基數2的字符串,這是我重複的。
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/
parseInt(a,b)是做什麼的? –
函數遍歷所有數字,所以它是O(n)(其中* n *是輸入值中的二進制數字的數量)。爲了O(log n),它必須有顯着的不同。 – Pointy
@YogeshPatil它意味着解析一個使用基礎b。 –