algorithm - 最好和最坏的情况
问题描述
我需要帮助来找到此代码的最佳情况和最坏情况并进行解释。我认为最坏的情况是 O(n)。
public static boolean adjacentDuplicates(int[] a) {
for (int i = 0; i < a.length-1; i++)
if (a[i] == a[i+1]) return true;
return false;
}
解决方案
最好的情况是在第一次比较return
值。因此,如果a[0] == a[1]
时间复杂度为\Theta(1)
。更糟糕的是,直到循环结束,比较才会得到满足。因此,最坏情况的复杂度是\Theta(n)
(即n
输入数组的长度a
)。
推荐阅读
- excel - 在excel中将多个单元格合并到一行中
- python - 据称在使用 super 时存在误解
- c - 读取 volatile 变量有持久效果?米斯拉 C
- opengl - 从帧缓冲区复制整个立方体贴图纹理
- java - 如何在 Intelijj IDEA 中仅格式化更改的行而不是整个文件
- javascript - 如何更改输入字段的值后退焦点
- c - 使用 T(n) 方法计算时间复杂度?
- java - TensorFlow Lite 模型 Android:找不到要标记的轴。要标记的有效轴的大小应大于 1
- sql - BigQuery - 查找过去 365 天内每个值的最新条目
- flutter - 展开一个 ExpansionTile 关闭所有其他的?