【发布时间】:2019-12-19 10:15:52
【问题描述】:
我有以下代码并试图找出它的时间复杂度:
int sum(int m, int n, int K) {
int s = 0;
for (int i = 0; i < n; i++) {
s += i;
if (i == K % 2) {
for (int j = 0; j < m; j++) {
s += j;
}
}
}
return s;
}
根据代码,外循环运行时间为 O(n),内循环运行时间为 O(m)。但是,内部循环只执行一次(当i 等于K % 2 时)。我不确定它只运行一次的时间复杂度是 O(nm) 还是 O(n + m)。目前,我怀疑复杂性应该是 O(n + m)。谁能帮我解释一下这个案例?
【问题讨论】:
标签: time-complexity nested-loops