代码之旅
数据结构与算法之美(三) 数据结构与算法之美(三)
跳表跳表:带有多级索引的链表。 跳表使用空间换时间的设计思路,通过构建多级索引来提高查询的效率,实现了基于链表的“二分查找”。跳表是一种动态数据结构,支持快速的插入、删除、查找操作,时间复杂度都是O(logn)。 跳表的空间复杂度是O(n
2021-07-26
数据结构与算法之美(二) 数据结构与算法之美(二)
递归递归需要满足的三个条件 一个问题的解可以分解为几个子问题的解 何为子问题?子问题就是数据规模更小的问题。 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样 存在递归中止条件 把问题分解为子问题,把子问题再分解为子子
2021-07-21
数据结构与算法之美(一) 数据结构与算法之美(一)
基础知识20个最常用的、最基础数据结构与算法10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树。 10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。 几种
2021-07-20
labuladong的算法小抄(一) labuladong的算法小抄(一)
学习算法和刷题的框架思维数据结构的存储方式数据结构的存储方式只有两种:数组(顺序存储)和链表(链式存储)。 数组和链表的优缺点 数组由于是紧凑连续存储,可以随机访问,通过索引快速找到对应元素,而且相对节约存储空间。但正因为连续存储,内
2021-07-12
重构-改善既有代码的设计(七) 重构-改善既有代码的设计(七)
处理继承关系函数上移(Pull Up Method) 示例 class Employee {...} class Saleman extends Employee { get name() 
2021-06-27
重构-改善既有代码的设计(六) 重构-改善既有代码的设计(六)
重构API将查询函数和修改函数分离(Separate Query from Modifier) 示例 function getTotalOutatandingAndSendBill(){ const result =
2021-06-21
重构-改善既有代码的设计(五) 重构-改善既有代码的设计(五)
重新组织数据拆分变量(Split Variable) 示例 let temp = 2 * (height + width); console.log(temp); temp = height * width; console.log(t
2021-06-20
重构-改善既有代码的设计(四) 重构-改善既有代码的设计(四)
搬移特性搬移函数(Move Function) 示例 class Account{ get overdraftCharge() {...} } 重构为 class Account
2021-05-24
重构-改善既有代码的设计(三) 重构-改善既有代码的设计(三)
封装封装记录(Encapsulate Record) 示例 organization = {name: "Acme Gooseberries",country:"GB"}; 重构为 class Oragan
2021-05-06
重构-改善既有代码的设计(二) 重构-改善既有代码的设计(二)
重构名录-第一组重构提炼函数(Extract Function) 示例 function printOwing(invoice){ printBanner() let outstanding = calcula
2021-04-27
罗辑思维 - 认知篇 罗辑思维 - 认知篇
多角度理解认知 – 从越多角度看待问题,就有越多解决问题的方法! 第一章 起点:认知升级我学习得越多,点亮的灯就越多,最后,我要照亮的是我自己的道路。我不关心它的对错,我只关心它对我是不是有启发。 保持头脑的开放性确定性的知识越来越少,
2021-02-05
高手 精英的见识和我们的时代 高手 精英的见识和我们的时代
Part 1 精英社会的神话成功与运气运气动力学(个人运气的三个规律) 运气可以放大(人类社会是个非线性的复杂系统,这意味着初始条件好一点点,最终结果不是按比例也好一点点,而是很有可能不成比例地把初始优势放大很多很多。) 运气可以累加
2021-01-18
1 / 3