假设有一个班级的成绩单,存储在一个长度为 n 的数组 scores 中,每个元素是一个学生的分数。老师想要找出所有满足 scores[i]+scores[j]+scores[k]==300 的三元组,其中 i < j < k。下面代码实现该功能,请问其时间复杂度是()。
int cnt = 0;
for (int i = 0; i < n; i++){
for (int j = i + 1; j < n; j++){
for (int k = j + 1; k < n; k++){
if (scores[i] + scores[j] + scores[k] == 300)
cnt++;
}
}
}
O(n)
O(n²)
O(n³)
O(2ⁿ)