202103-18 算法训练营第九周 高级动态规划/字符串算法 第九周学习笔记 动态规划 不同路径2状态转移方程 //i,j > 0 dp[i][j] = obstacleGrid[i][j] == 1 ? 0 : dp[i - 1][j] + dp[i][j - 1]; 字符串算法 1.字符串操作问题 2.异位词问题 3.回文串问题 4.最.... Read More >
202103-18 算法训练营第八周 位运算/布隆过滤器/LRU缓存/排序算法 第八周学习笔记 一、位运算 运算符及含义 运算符 含义 << 左移 >> 右移 >>> 无符号右移 & 按位与 | 按位或 ~ 按位取反 ^ 按位异或 位.... Read More >
202103-18 算法训练营第七周 字典树/并查集/高级搜索/红黑树/AVL树 字典树 Trie 基本结构 字典树,即 Trie 树,又称单词查找树或键树,是一种树形结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引 擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 基本性质 1.结点本身不存完整单词.... Read More >
202103-18 算法训练营第六周 动态规划 第六周学习笔记 动态规划 动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。 动态规划和递归或者分治没有根本上的区别(.... Read More >
202103-18 算法训练营第四周 DFS/BFS/贪心算法/二分查找 第四周学习笔记 深度优先搜索DFS 递归模板 visited = set() def dfs(node, visited): # terminator if node in visited: return visited.ad.... Read More >
202103-18 算法训练营第三周 分治/递归/回溯 第三周学习笔记 递归 通过函数体来进行的循环 通过参数进行传递变量 Python递归模板: def recursion(level, param1, param2, ...): #recursion terminator if level > MAX_LEVEL: p.... Read More >
202103-18 算法训练营第二周 哈希表/映射/集合/树/图/堆 第二周学习笔记 哈希表 是根据关键码值(Key value)而直接进行访问的数据结构。 元素 ==> 散列函数 ==> 存储位置 search/delete/insert时的时间复杂度可认为是O(1) HashMap key-value存储在Node[]数组中 static .... Read More >
202103-16 算法训练营第一周 数组 链表 跳表 栈 队列 第一周学习笔记 数组 Array 在内存中开辟出的一块连续空间 操作 复杂度 查找 O(1) 插入 O(n) 删除 O(n) prepend O(1) append O(1) 链表 Linked List .... Read More >