随笔- 300  文章- 81  评论- 807 
2018年9月17日
摘要:一、前端四部分 跳槽是每个人都会经历的一件事,而进新公司的途径也是多样的。有的人依靠朋友推荐,直接加入,但更多的人是通过层层面试,最后符合该公司要求后才加入的。而面试的时候就会被提问,问到的问题可以说五花八门,令人不知所措,常说机会留给有准备的人,因此,不管怎样,都得在面试前好好准备准备。但前端这个 阅读全文
posted @ 2018-09-17 10:07 咖啡机(K.F.J) 阅读(1634) 评论(0) 推荐(11) 编辑
2018年7月23日
摘要:目录 最近有点浮躁,也有点膨胀,工作也提不起劲,有点混混的节奏。 在此期间看到了本书《工匠精神》,读了几遍,矫正了一下自己。正像高达OO中的人物们一样,找到了一个战斗的理由。 一、大家对工作的常规理解 1. 好工作的定义:薪水多,轻松,社会地位高。 2. 工作就是为了赚钱,养家糊口,图生存,工作等于 阅读全文
posted @ 2018-07-23 10:28 咖啡机(K.F.J) 阅读(2346) 评论(8) 推荐(16) 编辑
2020年10月12日
正文内容加载中...
posted @ 2020-10-12 05:58 咖啡机(K.F.J) 阅读(147) 评论(0) 推荐(1) 编辑
2020年9月29日
摘要:贪心算法(Greedy Algorithm)会在每一步选择中都采取当前状态下最好或最优(即最有利)的选择,不能回退,从而希望结果是最好或最优的算法。它是动态规划的一种特例,需要满足更多的限制条件。 贪心算法在有最优子结构的问题中尤为有效(例如求图的最小生成树、哈夫曼编码等),最优子结构是指局部最优解 阅读全文
posted @ 2020-09-29 10:13 咖啡机(K.F.J) 阅读(346) 评论(1) 推荐(0) 编辑
2020年9月22日
摘要:回溯算法(backtracking)是一个类似枚举的搜索尝试过程,在寻找问题解的过程中,当发现不满足求解条件时,就退回一步,尝试其它路径,该算法的时间复杂度都不会低于 O(N!),复杂的例题包括正则表达式匹配、解数独等。 在《回溯算法详解》一文中提到,解决一个回溯问题,实际上就是一个决策树的遍历过程 阅读全文
posted @ 2020-09-22 08:33 咖啡机(K.F.J) 阅读(301) 评论(0) 推荐(2) 编辑
2020年9月15日
摘要:二分查找(Binary Search)是对一种针对有序数据集合的查找算法,依赖数组,适合静态数据。通过 n/2^k=1(k 是比较次数),可以求得 k=log2^n,因此时间复杂度为高效地 O(logn)。 其思路很简单,就是每次与区间的中间数据做比较,缩小查找范围,但是期间涉及到的细节很容易踩坑, 阅读全文
posted @ 2020-09-15 09:41 咖啡机(K.F.J) 阅读(184) 评论(0) 推荐(0) 编辑
2020年9月7日
摘要:树是一种非线性表数据结构,树的基本概念如下所列。 (1)结点高度:结点到叶子结点的最长路径(即边数)。例题:112. 路径总和。 (2)结点深度:根结点到这个结点所经历的边的个数。例题:104. 二叉树的最大深度。 (3)结点层数:结点深度加 1。 (4)树的高度:根结点的高度。例题:面试题 04. 阅读全文
posted @ 2020-09-07 07:05 咖啡机(K.F.J) 阅读(177) 评论(0) 推荐(0) 编辑
2020年8月31日
摘要:一、栈 栈(stack)是一种操作受限的线性表数据结构,基于后进先出(LIFO)策略的集合类型,例如函数中的临时变量符合后进先出的特性,因此用栈保存最合适。 在入栈和出栈过程中所需的空间复杂度是 O(1),时间复杂度也是 O(1)。空间复杂度是指运行算法还需要的额外存储空间。 注意,内存中的堆栈和数 阅读全文
posted @ 2020-08-31 09:25 咖啡机(K.F.J) 阅读(191) 评论(0) 推荐(2) 编辑
2020年8月25日
摘要:链表(Linked List)是不同于数组的另一种数据结构,它的存储单元(即结点或元素)除了包含任意类型的数据之外,还需要包含指向另一个结点的引用,后文会用术语链接表示对结点的引用。 下面会列出链表与数组的具体不同: (1)数组需要一块连续的内存空间来存储;而链表则恰恰相反,通过指针将零散的内存串联 阅读全文
posted @ 2020-08-25 06:45 咖啡机(K.F.J) 阅读(205) 评论(0) 推荐(1) 编辑
2020年8月16日
摘要:《浏览器工作原理与实践》是极客时间上的一个浏览器学习系列,在学习之后特在此做记录和总结。 一、事件循环 消息队列是一种数据结构,可以存放要执行的任务。它符合队列“先进先出”的特点,也就是说要添加任务的话,添加到队列的尾部;要取出任务的话,从队列头部去取。 从上图可以看出,改造可以分为下面三个步骤: 阅读全文
posted @ 2020-08-16 14:10 咖啡机(K.F.J) 阅读(74) 评论(0) 推荐(1) 编辑
2020年8月15日
摘要:《浏览器工作原理与实践》是极客时间上的一个浏览器学习系列,在学习之后特在此做记录和总结。 一、执行流程 实际上变量和函数声明在代码里的位置是不会改变的,而且是在编译阶段被 JavaScript 引擎放入内存中。 一段 JavaScript 代码在执行之前需要被 JavaScript 引擎编译,编译完 阅读全文
posted @ 2020-08-15 15:25 咖啡机(K.F.J) 阅读(61) 评论(0) 推荐(0) 编辑
2020年8月14日
摘要:《浏览器工作原理与实践》是极客时间上的一个浏览器学习系列,在学习之后特在此做记录和总结。 一、Chrome架构 1)线程和进程 Chrome打开一个页面会启动4个进程:网络进程、GPU进程、浏览器主进程和渲染进程。 一个进程就是一个程序的运行实例,启动一个程序的时候,操作系统会为该程序创建一块内存, 阅读全文
posted @ 2020-08-14 16:20 咖啡机(K.F.J) 阅读(102) 评论(0) 推荐(1) 编辑