一起LeetCode--字符串中获取最长无重复字符子串

 时间:2024-10-13 05:44:57

1、“暴力获取”算法通过两层嵌套循环,遍历原始字符串所有子串,找到最长无重复字符的子串并返回其长度。注意:内层循环中,当出现重复字符时,直接跳出即可。

一起LeetCode--字符串中获取最长无重复字符子串

2、“滑动窗口”算法“暴力获取”算法实现起来很简单,也很容易理解,但时间复杂度比较高,为 O(n²), n为字符串长度。“滑动窗口”算法就是为提升性能而来,其通过前后两个索引下标,在字符串上滑动。当没有重复字符,后面的下标向后滑动,当出现重复字符,则前面的下标向后滑动,时间复杂读为 O(n)。

一起LeetCode--字符串中获取最长无重复字符子串

3、两算法性能测试--准备数据构建1000个长度为1000的随机字符串,字符串包含的字符为常见的 ASCII 字符。

一起LeetCode--字符串中获取最长无重复字符子串

4、两算法性能测试--编写测试主方法获取数据后,分别调用两种算法进行计算,并记录所需时间。

一起LeetCode--字符串中获取最长无重复字符子串

5、两算法性能测试--运行测试并比较分别运行算法10次,记录每次执行时间,并计算平均时间。

一起LeetCode--字符串中获取最长无重复字符子串
  • 功能结构图怎么画?
  • 如何进入Proteus8中画PCB图的界面
  • 毕业论文跟毕业设计一样吗?有什么区别
  • 怎么改变keil编程时的文字大小
  • keil5使用教程
  • 热门搜索
    长生果是什么 kids是什么意思 book是什么意思 鸭肫是什么 叶公好龙是什么意思 .apk是什么文件 录音笔什么牌子好 橙色代表什么 籍贯是指什么 男生吻完手伸进上衣在想什么