когда я отправляю в leetcode, он запускает case 500/502, но не работает, причина: 1808548329. Но когда я запускаю его на своем собственном Mac, он дает тот же ответ, что и принятый.
мой код:
int trailingZeroes(int n) {
int count = 0;
int tmp = 0; //check every number in [1, i]
for (int i = 1; i <= n; i++) {
tmp = i;
while (tmp % 5 == 0) {
count++;
tmp /= 5;
}
}
return count;
}
и ответ переменного тока:
int trailingZeroes2(int n) {
return n == 0 ? 0 : n / 5 + trailingZeroes(n / 5);
}
они запускают тот же результат, на моем Mac:
std::cout << trailingZeroes(1808548329) << std::endl; //452137076
std::cout << trailingZeroes2(1808548329) << std::endl; //452137076
Это причина того, что первое решение непринят из-за time complexity?
(потому что я запускаю его на своем Mac, но он дает тот же ответ, что и AC)
как я могу вычислить временную сложность первого решения,
это O(NlogN)
?Я не уверен.Вы можете сделать мне одолжение -: -)
отредактировано, удалить фото.