亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【九月打卡】第11天 前端面試技能拼圖1

標簽:
面試

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

课程内容:

今天学习的内容包括:
2-5 把一个数组旋转 k 步-代码演示和单元测试——旋转k步就是把尾部的数值移动到头部,执行k次。
2-6 把一个数组旋转 k 步-性能分析——分析两种旋转k步的性能。

课程收获:

把一个数组旋转 k 步-代码演示和单元测试

  • 使用pop()unshift()在for循环中实现旋转。
  • 使用slice()concat()实现旋转k次。
  • slice(负值)得到的是数组的最后几个值的数组。
  • 编写的方法需要使用export进行抛出,以便jest测试。
describe('测试组', function () {
  it('测试项', () => {
    ...
    expect(返回值).toEqual(预计值) // 断言
  })
})

性能分析

复杂度分析
  • 思路1:时间复杂度O(n^2) ,空间复杂度O(1)。
  • 思路2∶时间复杂度O(1),空间复杂度O(n)。
  • 数组是一个有序结构(连续内存),unshift 操作非常慢,push是比较快的。
答案
  • 选择思路2∶拆分数组,最后concat拼接,返回。
  • 时间复杂度O(1),足够快。
  • 空间复杂度O(n),但不重要。
划重点
  • 注意算法时间复杂度(前端重时间,轻空间)。
  • 识破内置API的时间复杂度(如unshift )。
  • 单元测试,考虑参数非法情况,提升代码健壮性。
  • 不要过度优化。
  • 第一,前端优先考虑时间复杂度-抓住重点。
  • 第二,比复杂度更重要的是:代码逻辑清晰,易读。

今天的 学习了 把一个数组旋转 k 步,并对算法进行代码编写、单元测试和性能分析,让我感觉知其然而知所以然,感觉收获挺大。

下一步就是 判断字符串的括号是否匹配算法了。今天学习就先到这里吧。

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

https://img1.sycdn.imooc.com//6322ab8500019c4b23941505.jpg

https://img1.sycdn.imooc.com//6322d2060001e2f923861510.jpg

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
1
獲贊與收藏
1

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消