14. 最长公共前缀

14. 最长公共前缀

14. 最长公共前缀
方法一:水平扫描
算法
想象数组的末尾有一个非常短的字符串,使用上述方法依旧会进行 SS 次比较。优化这类情况的一种方法就是水平扫描。我们从前往后枚举字符串的每一列,先比较每个字符串相同列上的字符(即不同字符串相同下标的字符)然后再进行对下一列的比较。
14. 最长公共前缀
复杂度分析
时间复杂度: O(S),S 是所有字符串中字符数量的总和。
最坏情况下,输入数据为 n 个长度为 m 的相同字符串,算法会进行S=m∗n 次比较。但是最好的情况下,算法只需要进行 n∗minLen 次比较,其中 minLen 是数组中最短字符串的长度。
空间复杂度:O(1),我们只需要使用常数级别的额外空间。
自己的方法:
14. 最长公共前缀