纸上得来终觉浅,绝知此事要躬行
转眼来北京已经三年有余,在北京遇到另一半结婚,回想毕业时一阵恍然,不敢想自己会坚持这么久,也换了一份工作,新工作不知不觉也已经一年了,有过离开的选择和挣扎,也更明白坚守的意义,幸运的了双月spot bonus,希望一切都是最好的安排啊。
纸上得来终觉浅,绝知此事要躬行
纸上得来终觉浅,绝知此事要躬行
转眼来北京已经三年有余,在北京遇到另一半结婚,回想毕业时一阵恍然,不敢想自己会坚持这么久,也换了一份工作,新工作不知不觉也已经一年了,有过离开的选择和挣扎,也更明白坚守的意义,幸运的了双月spot bonus,希望一切都是最好的安排啊。
纸上得来终觉浅,绝知此事要躬行
解决一个回溯问题,实际上就是一个决策树的遍历过程。你只需要思考 3 个问题:
1、路径:也就是已经做出的选择。
2、选择列表:也就是你当前可以做的选择。
3、结束条件:也就是到达决策树底层,无法再做选择的条件。
代码方面,回溯算法的框架:
1 | result = [] |
其核心就是 for 循环里面的递归,在递归调用之前「做选择」,在递归调用之后「撤销选择」
什么叫做选择和撤销选择呢,这个框架的底层原理是什么呢?下面我们就通过「全排列」这个问题来解开之前的疑惑,详细探究一下其中的奥妙!
纸上得来终觉浅,绝知此事要躬行
贪心、回溯、动态规划可划分为一类,而分治单独一类
前三个都是解决问题的模型,可抽象成多阶段决策最优解,而分治问题尽管大部分也是最优解问题,但是大部分不能抽象成多阶段决策模型
回溯算法是万金油,基本上能用动态规划、贪心解决的问题,都可以用回溯算法解决,其实相当于穷举搜索,但是⌚️复杂度比较高,是指数级别的,只能用来解决小规模数据问题。
动态规划相对比较高效,能用动态规划解决的问题需要满足三个特征:最优子结构、无后效性、重复子问题。对于重复子问题,分治要求分割成子问题不能有重复,而动态规划之所以高效就在于回溯算法实现中存在大量重复子问题。
贪心算法实际上是动态规划的特殊情况。她解决的问题起来更加高效,代码实现也更加简洁,但是她需要满足三个条件:最优子结构、无后效性
、贪心选择性(即选择只当前最优解,不记录之前状态)
总结起来:
纸上得来终觉浅,绝知此事要躬行
BM算法的核心思想是通过将模式串沿主串大踏步向后滑动,从而大大减少比较次数,降低时间复杂度。而算法的关键在于如何兼顾步子迈得足够大与无遗漏,同时尽量提高执行效率。这需要模式串在向后滑动式,遵守坏字符与好后缀规则,同时采用一些技巧。
纸上得来终觉浅,绝知此事要躬行
最近项目更新数据库,由于语句使用不善,踩了许多坑,特做此总结引以为戒。
在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在; 2. 如果不存在,则插入;3.如果存在,则更新。
通常使用replace into
和insert into on deplicate key update
纸上得来终夜寝啊,据知此事要躬行
说起数据库学习历程,启蒙应该是毕业前完成的学习了慕课网的一门课程两遍吧,还自我感觉尚可,接下来就是入职以来在公司内部奥特曼系统写sql吧,算上真正操练了,对联合查询子查询等高级使用有个进阶,然后就是现在写node项目直连数据库啦,更多的是考虑了大量数据下查询性能以及安全权限方面的问题。
纸上得来终觉浅,绝知此事要躬行
很久前看过webpack
,入职来一直做小程序快应用相关需求,对于框架和工程化的东西渐渐拉下了,忽然发现webpack都到4.0了,想想之前看还是2.0时代,真是是新月异啊,webpack
入门的初始化配置就不再记述,基本看下编译之后的文件就能读明白(普通模块依赖、动态引用编译)主要记述下自己看tree shaking
时的坑。
首先介绍下什么是tree shaking
,可以理解为通过工具”摇”我们的JS文件,将其中用不到的代码”摇”掉,是一个性能优化的范畴。具体来说,在 webpack
项目中,有一个入口文件,相当于一棵树的主干,入口文件有很多依赖的模块,相当于树枝。实际情况中,虽然依赖了某个模块,但其实只使用其中的某些功能。通过tree-shaking
,将没有使用的模块摇掉,这样来达到删除无用代码的目的。
纸上得来终觉浅,绝知此事要躬行
转眼又要开始校招了,组内也要求每人出一道题,忽然就想起自己面试遇到的一道数组扁平化的问题,就顺便温习做下总结。
题目:请使用尽可能多的方法将一个js嵌套数组转换为只有一层的数组。例如:
1 | let arr = [1, [2, [3, 4]]]; |
纸上得来终觉浅,觉知此事要躬行
工作后发现写文章的频率变得少了很多,还是要多总结下的,最近在开发公司搜狗搜索快应用,开发最初毫无经验完全对着文档,快速迭代了好几版,也是时候做个总结和吐槽了。、
借用官方的说法有三点:
个人觉得就是应用商店内部的小程序吧,而且还要面临各个厂商的问题,ios缺阵也是一大不爽,无论如何既然作为一种生态还是很有而且无需安装能力也和app相近还是有很大的前景的(参加快应用沙龙指导汽车之间DAU有10w,还是不错的),作为前端人员还是很有学习必要的。