JVM 核心技术 —— 工具与 GC 策略 1 JDK 内置命令行工具 jps -l 查看所有 Java 进程的进程号 jps -mlv 加上mlv参数之后可以打印更详细的信息(JVM 启动参数) jinfo 进程号 打印 JVM 的配置信息 PS C:\Windows\system32> jinfo 8444 Attaching to process ID 8444, please wai… 阅读全文
作者: lwg0452
使用线段树求区间和
线段树(Segment Tree)是一种二叉搜索树,与区间树相似,他将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶子节点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为 O(logN)。而未优化的空间复杂度为 2N ,实际应用时一般还要开 4N 的数组以免越界,因此有时需要离散化让空间压缩。 —— 百度百科* 线段树可以使用一个堆来表示,存储在长度为 2N… 阅读全文
树状数组 —— 一种支持单点修改和区间查找的数据结构
树状数组(英语:Binary Indexed Tree)又称为二元索引树,由 Fenwick 于 1994年发明,故又称为 Fenwick 树,其初衷是解决数据压缩里的累积频率(Cumulative Frequency)的计算问题,现多用于高效计算数列的前缀和、区间和。它支持在 O(logn) 的时间复杂度内得到任意前缀和和区间和,同时支持在 O(logn) 的时间复杂度内动态修改单点的值,空间复… 阅读全文
算法训练营第九周 高级动态规划/字符串算法
第九周学习笔记 动态规划 不同路径2状态转移方程 //i,j > 0 dp[i][j] = obstacleGrid[i][j] == 1 ? 0 : dp[i – 1][j] + dp[i][j – 1]; 字符串算法 1.字符串操作问题 2.异位… 阅读全文
算法训练营第八周 位运算/布隆过滤器/LRU缓存/排序算法
第八周学习笔记 一、位运算 运算符及含义 运算符 含义 << 左移 >> 右移 >>> 无符号右移 & 按位与 | 按位或 ~ 按位取反 ^ 按位异或 位运算要点 •判断奇偶 x % 2 == 1 ——> (x & 1) == 1 x % 2 == 0 ——> (x & 1) == 0 •除以2 x >>… 阅读全文
算法训练营第七周 字典树/并查集/高级搜索/红黑树/AVL树
字典树 Trie 基本结构 字典树,即 Trie 树,又称单词查找树或键树,是一种树形结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引 擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 基本性质 1.结点本身不存完整单词; 2.从根结点到某一结点,路径上经过的字符连接起来,为该结点对应的字符串; 3.每个结点的所有子结点路径代… 阅读全文
算法训练营第六周 动态规划
第六周学习笔记 动态规划 动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。 动态规划和递归或者分治没有根本上的区别(关键看有无最优的子结构) 共性:找到重复子问题 差异性:最优子结构、中途可以淘汰次优解 关键点 1.最优子结构… 阅读全文
算法训练营第四周 DFS/BFS/贪心算法/二分查找
第四周学习笔记 深度优先搜索DFS 递归模板 visited = set() def dfs(node, visited): # terminator if node in visited: return visited.add(node) # process current node here. … for next_node in node.children(): if next_node… 阅读全文
算法训练营第三周 分治/递归/回溯
第三周学习笔记 递归 通过函数体来进行的循环 通过参数进行传递变量 Python递归模板: def recursion(level, param1, param2, …): #recursion terminator if level > MAX_LEVEL: process_result return #process logic current level process(level… 阅读全文
算法训练营第二周 哈希表/映射/集合/树/图/堆
第二周学习笔记 哈希表 是根据关键码值(Key value)而直接进行访问的数据结构。 元素 ==> 散列函数 ==> 存储位置 search/delete/insert时的时间复杂度可认为是O(1) HashMap key-value存储在Node[]数组中 static class Node<K,V> implements Map.Entry<K,V> { … 阅读全文