手记

【金秋打卡】第2天 前端面试技能拼图1

课程名称:2周刷完100道前端优质面试真题
课程章节:第3章 前端面试技能拼图1: 数据结构和算法(下),大厂面试必考
主讲老师:双越

课程内容:

今天学习的内容包括:
3-10 获取字符串中连续最多的字符以及次数-使用嵌套循环——使用跳步实现时间复杂度为O(n)。

课程收获:

字符串中连续最多的字符,以及次数
  • 如,输入‘abbcccddeeee1234’,计算得到:
  • 连续最多的字符是’e’,4次
传统思路
  • 嵌套循环,找出每个字符的连接次数,并记录
  • 看似时间复杂度是O(n^2)
  • 但实际时间复杂度是多少?———O(n),因为有“跳步”
if (tempLength > res.length) {
     res.char = str[i]
     res.length = tempLength
 }

 if (i < length - 1) {
     i = j - 1 // 跳步
 }
tips
  • 跳步感觉类似指针,实现结果跟指针是一样的,不过这个方法要比双指针容易理解的多
  • 跳步需要考虑到不能跳出字符串以外
  • 因为for循环是累加的,所以跳步需要 -1

今天的 学习了 使用嵌套循环加跳步 - 获取字符串中连续最多的字符以及次数,时间复杂度从O(n^2)成为O(n),提升非常明显。

下一步就是 学习 获取字符串中连续最多的字符以及次数-使用双指针。今天学习就先到这里吧。

坚持打卡,坚持学习,未来可期,加油😀~


0人推荐
随时随地看视频
慕课网APP