когда я отправляю leetcode, он запускает случай 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)
? Я не уверена. можешь оказать мне услугу? : -)
отредактировал, убери фотки.