11 2020 档案

摘要:一、认识布隆过滤器 场景:如果遇到网页黑名单系统、垃圾邮件过滤系统、爬虫的网站判重系统等题目,又看到系统容忍一定程度的失误率,但是对空间要求比较严格,那么大概率考布隆过滤器的知识。 一个布隆过滤器精确地代表一个集合,并可以精确判断一个元素是否在集合中。 到底有多精确取决于具体的设计,但完全正确是不可 阅读全文
posted @ 2020-11-30 17:56 不学无墅_NKer 阅读(123) 评论(0) 推荐(0)
摘要:一、理论 LRU是一种缓存淘汰策略,最近使用的认为是「有用的」,很久没使用过的数据认为是无用的,缓存满时就优先删除它们。 LRU- Least recently used(最近最少使用页面置换算法、按访问的时序来淘汰) LFU- Least frequently used(最近最不常用页面置换算法、 阅读全文
posted @ 2020-11-30 16:38 不学无墅_NKer 阅读(255) 评论(0) 推荐(0)
摘要:一、理论 并查集的定义: 并查集是一种树型的数据结构,用于处理一些不交集的合并和查询问题。一般用数组实现。 Find:确定元素属于哪一个子集,它可以被用来确定两个元素是否属于同一个子集。 Union:将两个子集合并成同一个集合。 并查集的优化: 优化1: 降低rank,提高查询效率。合并时要考虑ra 阅读全文
posted @ 2020-11-30 11:36 不学无墅_NKer 阅读(145) 评论(0) 推荐(0)
摘要:一、理论 递归问题 -> 重叠子问题、最优子结构 -> 记忆化搜索(自顶向下) -> 动态规划(记忆化 + 自底向上) 动态规划(Dynamic Programming),即动态递推(递归 + 记忆化 -> 递推)。动态规划问题的一般形式就是求最值。 1. 状态的定义:opt[n],dp[n],fi 阅读全文
posted @ 2020-11-29 20:45 不学无墅_NKer 阅读(328) 评论(0) 推荐(0)
摘要:一、理论 常用的位运算: X & 1 == 1 OR == 0 :判断奇偶 X = X & (X - 1) : 清零最低位的1 (常用来求二进制位有多少个1) X & -X : 得到最低位的1, -X就是按位取反末尾加1,。 例如X为10100,-X为01100 X & (1 << (n - 1)) 阅读全文
posted @ 2020-11-24 15:33 不学无墅_NKer 阅读(227) 评论(0) 推荐(0)
摘要:一、理论 1. 基本结构 Trie树,即字典树或单词查找树。典型应用是用于统计和排序大量的字符串(不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。 优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 2. 核心思想 空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效 阅读全文
posted @ 2020-11-23 20:48 不学无墅_NKer 阅读(140) 评论(0) 推荐(0)
摘要:一、理论 适用二分查找的条件:1. 单调递增或递减 ; 2. 存在上下界; 3.能够通过索引访问(数组) Tips:题目中看见 数组 + 有序,要第一时间想到 二分 !!! 【循环不变量】的设计:声明的 left 和 right 的意义不同,二分查找的边界就不同,因此需要理解 left 和 righ 阅读全文
posted @ 2020-11-23 10:36 不学无墅_NKer 阅读(164) 评论(0) 推荐(0)
摘要:一、理论 1)首先,使用回溯算法关键是,将问题转化为 【树形问题】。 2)回溯的关键点: for循环、 递归。 for循环的作用在于另寻它路,可以逐个选择当前节点下的所有可能往下走下去的分支路径。 递归可以实现一条路走到黑和回退一步,把递归放在for循环内部,那么for每一次的循环,都在给出一个路径 阅读全文
posted @ 2020-11-22 21:27 不学无墅_NKer 阅读(711) 评论(0) 推荐(0)
摘要:一、理论 BFS用到队列,只有非递归写法。 应用到树时,不需要标记该节点是否走过。而应用到图结构时,需要标记某个节点是否已被访问过。 DFS需要用栈,有递归和非递归写法,推荐使用递归写法。 二、典型例题 ①:二叉树层次遍历(LC102、剑指22.从上往下打印二叉树) 方法1:树的BFS,需要用队列。 阅读全文
posted @ 2020-11-22 16:00 不学无墅_NKer 阅读(244) 评论(0) 推荐(0)
摘要:一、理论 贪心(Greedy)算法:在对问题求解时,总是做出在当前看来是最好的选择。 由于贪心算法每一次操作都需要取最大值或最小值,所以通常需要对数组排序。 适用Greedy 的场景: 问题能够分成子问题来解决,子问题的最优解能递推到最终问题的最优解。 如果不能使用贪心算法,只需要举出反例即可。 贪 阅读全文
posted @ 2020-11-21 21:46 不学无墅_NKer 阅读(364) 评论(0) 推荐(0)
摘要:一、理论 二、典型例题 ☆☆①:快速幂->实现计算x的n次幂函数(LC50、剑指12.数值的整数次方)【字节面试】 思路:采用分治的思想,时间复杂度为O(logn) class Solution { public double myPow(double x, long n) { // 方法1:递归 阅读全文
posted @ 2020-11-21 20:59 不学无墅_NKer 阅读(124) 评论(0) 推荐(0)
摘要:一、理论 二分搜索树: 1. 每个节点的键值大于左孩子; 2. 每个节点的键值小于右孩子; 3. 以左右孩子为根的子树仍为二分搜索树。 对于二分搜索树,要求掌握 插入、 查找、 删除 基本操作,以及 查找最大值、最小值; 给定一个数据,寻找前驱和后继,以及上界和下界 某个元素的排名rank 寻找第k 阅读全文
posted @ 2020-11-21 18:53 不学无墅_NKer 阅读(171) 评论(0) 推荐(0)
摘要:一、理论 Hash冲突及解决:关键字不同的元素映射到同样地址时会产生hash冲突,解决方法有:开放定址法(探测序列)、再哈希法、链地址法。 HashMap、HashSet >哈希表的查找、插入、删除的平均复杂度为O(1), TreeMap、TreeSet >二叉搜索树的查找、插入、删除的平均复杂度为 阅读全文
posted @ 2020-11-21 12:10 不学无墅_NKer 阅读(166) 评论(0) 推荐(0)
摘要:一、实现机制 1. 堆Heap(Binary、Fibonacci) 对于堆的底层实现,要会白板编程。 2. 二叉搜索树(BST) 二、典型例题 ①:返回数据流中的第K大元素(LC703) class KthLargest { private int k; private PriorityQueue< 阅读全文
posted @ 2020-11-20 17:14 不学无墅_NKer 阅读(182) 评论(0) 推荐(0)
摘要:bat 批处理脚本是 Windows 系统上用于批量执行任务的脚本,后缀名为.bat 具体步骤: 1. 新建一个txt文本,后缀名改为.bat。然后右键选择使用记事本打开,编辑需要运行的命令行(可为多条) 2. 在当前路径下打开CMD命令行窗口,输入 start .\test.bat 3. 回车后, 阅读全文
posted @ 2020-11-20 10:00 不学无墅_NKer 阅读(4088) 评论(0) 推荐(0)
摘要:一、栈和队列的特点,使用场景 栈(Stack)是限定仅在表尾进行插入和删除操作的线性表,后进先出。 队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表,先进先出。 二、代码实现 对于队列,LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Qu 阅读全文
posted @ 2020-11-19 21:47 不学无墅_NKer 阅读(124) 评论(0) 推荐(0)
摘要:一、数组 查找:O(1) 插入、删除:O(n) 二、链表 应用场景:1. 频繁插入和删除,链表优于数组。 2. 不知道有多少个元素需要添加。 查找:O(n) 插入、删除:O(1) 三、问答题 数组和链表的区别以及应用场景;假如有5万个数,有序,需要查找某一个数,问需要使用数组还是链表? 四、典型例题 阅读全文
posted @ 2020-11-19 19:44 不学无墅_NKer 阅读(146) 评论(0) 推荐(0)
摘要:上链接Http://www.lfd.uci.edu/~gohlke/pythonlibs/ 需是64位的操作系统 阅读全文
posted @ 2020-11-17 16:14 不学无墅_NKer 阅读(203) 评论(0) 推荐(0)
摘要:☆1.模拟一个trim()方法,去除字符串两端的空格。 public String myTrim(String str){ int start = 0; int end = str.length() - 1; while(start < end && str.charAt(start) == ' ' 阅读全文
posted @ 2020-11-06 11:06 不学无墅_NKer 阅读(153) 评论(0) 推荐(0)
摘要:Editor-General部分 1.设置鼠标滚轮修改字体大小 2.设置鼠标悬浮提示 3.设置自动导包功能 4.设置显示行号和方法间的分隔符 5.忽略大小写提示 6.设置取消单行显示tabs的操作 当打开很多文件时,IDEA默认是把所有打开的文件名单行显示的,会隐藏其他文件名,而使用多行会提高效率。 阅读全文
posted @ 2020-11-01 21:06 不学无墅_NKer 阅读(466) 评论(0) 推荐(0)
摘要:1.IDEA的主要功能介绍 2.硬件要求 建议内存8G或以上(大数据16G以上),CPU i5以上,最好安装块固态硬盘(SSD),将IDEA安装在固态硬盘上,提高流畅度。 3.查看安装目录结构 4.调整VM配置文件 bin目录下: 64位操作系统且内存大于8G的,如果开发大型项目,建议修改VM配置文 阅读全文
posted @ 2020-11-01 17:04 不学无墅_NKer 阅读(201) 评论(0) 推荐(0)