手记

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

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

课程内容:

今天学习的内容包括:
3-15 -获取1-10000之前所有的对称数(回文数)-代码演示和单元测试——使用反转比较、头尾比较、生成翻转数获取所有的对称数。
3-16 -获取1-10000之前所有的对称数(回文数)-性能分析——操作数字性能最好,其次是字符串。

课程收获:

对称数

  • 求1-10000之间的所有对称数(回文)
  • 例如∶0,1,2,11,22,101,232,1221
思路1–使用数组反转、比较
  • 数字转换为字符串,再转换为数组
  • 数组reverse ,再join为字符串
  • 前后字符串进行对比
思路2-字符串头尾比较
  • 数字转换为字符串
  • 字符串头尾字符比较
  • (也可以用栈,像括号匹配,但要注意奇偶数)
思路3–生成翻转数
  • 使用%和Math.floor 生成反转数
  • 前后数字进行对比
  • (全程操作数字,没有字符串类型)
性能分析
  • 思路1–看似是O(n),但数组转换、操作都需要时间,所以慢
  • 思路2 vs思路3,操作数字更快(电脑原型就是计算器)
  • 思路2要用栈,不合适。因为栈也一般用数组实现,会慢
划重点
  • 尽量不要转换数据结构,尤其数组这种有序结构
  • 尽量不要用内置 API,如reverse ,不好识别复杂度
  • 数字操作最快,其次是字符串

今天的 学习了 获取1-10000之前所有的对称数(回文数),使用了三种方法,知道了数字操作最快,其次是字符串,数组及内置API操作等不建议。

下一步就是 学习 如何实现高效的英文单词前缀匹配。今天学习就先到这里吧。

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

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