`java // 二叉树遍历框架 void traverse(TreeNode root) { traverse(root.left); traverse(root.right); } // 二维矩阵遍历框架 void dfs(int grid, int i, int j, boolean visited) { int m = gri ...
`java // 二叉树遍历框架 void traverse(TreeNode root) { traverse(root.left); traverse(root.right); } // 二维矩阵遍历框架 void dfs(int grid, int i, int j, boolean visited) { int m = gri ...
`java class Solution { public List> threeSum(int[] nums) { Arrays.sort(nums); // n 为 3,从 nums[0] 开始计算和为 0 的三元组 return nSumTarget(nums, 3, 0, 0); } ...
前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和。 sum[i..j] = nums[0..j] - nums[0..i] 一般会通过哈希表加速查找 代码实现 `java class Solution { public int subarraySum(int[] nums, int k) { int n = nums.le ...
引用:labuladong的算法小抄 核心框架 这个问题的「状态」有三个,第一个是天数,第二个是允许交易的最大次数,第三个是当前的持有状态(即之前说的 rest 的状态,我们不妨用 1 表示持有,0 表示没有持 ...
Trie 树又叫字典树、前缀树、单词查找树,是一种二叉树衍生出来的高级数据结构,主要应用场景是处理字符串前缀相关的操作。 Trie 树的核心数据结构是多叉树。TrieNode中children数组的索引是有意义的,代表键中的一个字符。 比如说children[97]如果非空,说明这里存储了一个字符'a',因为'a'的 ASCII 码为 97。 `java /* Trie ...