从接触软件工程开始,编写单元测试就一直被不断强调,其重要性可想而知。那么,如何在我们的 React 项目中编写单元测试呢?
字节跳动校招前端面试知识点
秋招流年不利,于是发奋刷算法题,春招时来运转,拿到了字节跳动的前端Offer。准备面试阶段,将去年所有前端面经的题目所涉及到的知识点作了一遍梳理。实践证明,面试问题确实没有超出相关知识点范围,权作参考吧!
与TLE斗争到底系列(三):记忆化搜索
算法题目刷了小半年,对于记忆化搜索的灵活运用还是力有不逮。使用记忆化搜索的目的是为乐减少重复搜索,其对于降低搜索的时间复杂度具有十分明显的作用,属于典型的“空间换时间”。今天遇到一道题目,刚好比较合理地结合了递归与记忆化搜索。
与TLE斗争到底系列(二):双向扫描
今天做了一道2020腾讯校招技术笔试题目,难度不大,但同样容易诱导我们写出TLE的代码。为了优化时间复杂度,我们可以借助双向扫描来降低程序步数。对于双向扫描,顾名思义,以一维数组为例,从左到右遍历数组内部元素,我们视为一次单向扫描,那么,双向扫描即意味着从左到右遍历元素,而后从右到左遍历元素。如何借助双向扫描来降低时间复杂度呢?我们从一道题目开始:
与TLE斗争到底系列(一):堆的应用
对我来说,Google Kick Start 就是一条充满荆棘的山路,无处不在的WA和TLE整得人简直没脾气。接下来一段时间,我打算在这条路上好好走上一走,四处看看,与TLE斗争到底。一般来说,TLE发生的原因即在于时间复杂度过高,需要想办法优化代码,其中一个思路是借助堆的应用,之前的也有文章提到,本文从一道更难的题目入手,一起来看看如何借助堆优化时间复杂度。
C++ With VSCode
本文字数: 719 阅读时长 ≈ 1 分钟
Heap and Sliding Window
本文字数: 4.1k 阅读时长 ≈ 4 分钟
针对数据结构中的堆(Heap),素来比较陌生,也不知道该如何使用。今天来理一理堆的概念。堆(Heap)又称优先队列(Priority Queue),其内部元素并非按照一般的“先进先出”原则,而是按照优先级取出元素。此外,堆又可分为大根堆与小根堆。为了更清晰地了解堆的使用,来看一道算法题:
TypeScript with Laravel Mix
Finite-State Machine
本文字数: 1.3k 阅读时长 ≈ 1 分钟
有限状态机(Finite-State Machine, FSM)表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。状态机可归纳为4个要素,即现态、条件、动作、次态。“现态”和“条件”是因,“动作”和“次态”是果。
Greedy
本文字数: 2.3k 阅读时长 ≈ 2 分钟
狭义的贪心算法指的是解最优化问题的一种特殊方法,解决过程中总是做出当下最好的选择,因为具有最优子结构的特点,局部最优解可以得到全局最优解;这种贪心算法是动态规划的一种特例。能用贪心解决的问题,也可以用动态规划解决。