我有以下代码片段:
public static int digPow(int n, int p) {
int powCounter = p;
int sum = 0;
char[] digits = (""+n).toCharArray();
for (char digit : digits) {
sum += Math.pow(Character.getNumericValue(digit), powCounter);
powCounter++;
}
if (sum % n == 0) return sum / n;
else return -1;
}我不明白如何定义时间复杂度,因为,尽管我有一个循环,但在我看来,它不仅仅是O(n)。或者是真的?
发布于 2022-12-03 14:30:28
它的O(n),其中n是字符数组数字的长度。由于循环将迭代这一次,所以下一行是一个if else子句,它只执行一次。
https://stackoverflow.com/questions/74667613
复制相似问题