分类:算法基础
刷题方法
记忆细节,反复练习 打破惯性,机器思维 分治、回溯、递归、动态规划 升维 空间换时间 Chunk it up 切碎知识点 Deiliberate practicing 刻意练习 Feed back 获得反馈 主动型反馈 (自己去找) 被动型…
资源推荐
https://github.com/wangxiuwen/datastructuresandalgorithms.git labuladong labuladong 的整理 花花酱 YouTube 花花酱LeetCode B 花花酱代码…
字符串
两个字符串变换问题,一般要转成一个二维数组,两个字符串分别为字符串的行和列 string immutable python: Java: https://leetcode-cn.com/problems/regular-expression…
位运算
补码(twos complement) 在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃…
搜索
剪枝 双向 BFS 启发式搜索(A) 1. 朴素搜索 2. 优化方式: 不重复(fibnacci)、剪枝(生成括号问题) 3. 搜索方向: DFS: depth first search 深度优先搜索 BFS: breadth first…
动态规划 dynamic programming
<https://en.wikipedia.org/wiki/Dynamicprogramming <https://zh.wikipedia.org/wiki/动态规划 "Simplifying a complicated problem…
二分查找
目标函数单调性(单调递增或者递减) 存在上下界(bounded) 能够通过索引访问(index accessible) 在递增数组里面 [10,14,19,26,27,31,33,35,42,44] 查找 31 69. x 的平方根 33.…
Bloom Filter
一个很长的二进制向量和一系列随机映射函数。 布隆过滤器可以用于检索一个元素是否在一个集合中。 优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。 1. 比特币网络 2. 分布式系统(Map-Reduce) —…
第 1 / 3 页 · 共 29 篇