【发布时间】:2022-01-22 07:45:18
【问题描述】:
所以我这里有这段代码,我只是想了解时间和空间的复杂性。
对于时间复杂度,我认为它的 O(n^2) 因为它在 while 循环中最多经历 n - 1 个循环,并且它将在 for 循环中经历 n 次,所以它将是 O(n(n -1)) 这是 O(n^2) 和空间复杂度我认为它是 O(n) 因为它是线性空间。
我不知道我是否正确,但如果我错了,有人可以纠正我的想法吗?提前致谢。
// Write your code here
let visited = new Array(s.length).fill(false);
let count = 0;
for (let i = 0; i < s.length; i++) {
let j = i + 1;
visited[i] = true;
while (j < s.length && s[j] === s[i] && !visited[j]) {
visited[j] = true;
count++;
j++;
}
}
return count;
【问题讨论】:
-
它的目的是什么?你有一些数据和结果吗?
-
@NinaScholz 这只是我解决的一个黑客等级问题,所以我试图弄清楚面试准备的时间和空间复杂度
-
@user1599011 它可以运行 s 的长度,因为 s 可以在整个字符串中使用相同的字母
标签: javascript time-complexity big-o space-complexity