1、“暴力获取”算法通过两层嵌套循环,遍历原始字符串所有子串,找到最长无重复字符的子串并返回其长度。注意:内层循环中,当出现重复字符时,直接跳出即可。
2、“滑动窗口”算法“暴力获取”算法实现起来很简单,也很容易理解,但时间复杂度比较高,为 O(n²), n为字符串长度。“滑动窗鄹绦谟嚣口”算法就是为提升性能而来,其通过前后两个索引下标,在字符串上滑动。当没有重复字符,后面的下标向后滑动,当出现重复字符,则前面的下标向后滑动,时间复杂读为 O(n)。
3、两算法性能测试--准备数据构建1000个长度为1000的随机字符串,字符串包含的字符为常见的 ASCII 字符。
4、两算法性能测试--编写测试主方法获取数据后,分别调用两种算法进行计算,并记录所需时间。
5、两算法性能测试--运行测试并比较分别运行算法10次,记录每次执行时间,并计算平均时间。