Loading

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 18 下一页
摘要: 题目 208. 实现 Trie (前缀树) 思路 在我们生活中很多地方都用到了前缀树:自动补全,模糊匹配,九宫格打字预测等等。。。 虽然说用哈希表也可以实现:是否出现过该单词,该单词出现过几次,但是,在某些情况下,效率并不高:比如我们要查他的前缀是否出现过,那么用哈希表就不好实现了,用前缀树更适合更 阅读全文
posted @ 2020-12-13 00:24 linzeliang 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 题目 560. 和为K的子数组 思路1(前缀和) 构建前缀和数组,可以快速计算任意区间的和 注意:计算区间时候,下标有变化,计算nums[i..j]之间的和,那么就是sum = prefixSum[j+1] - prefixSum[i],因为prefixSum的0索引位置是0,总的长度比nums大1 阅读全文
posted @ 2020-12-11 08:04 linzeliang 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 09. 用两个栈实现队列 思路 刚开始想的是用stack1作为数据存储的地方,stack2用来作为辅助栈,如果添加元素直接push入stack1,如果删除元素,把stack1中的n-1个给pop到stack2中,然后剩下一个直接pop掉,然后再把stack2中的元素给在倒回去 阅读全文
posted @ 2020-12-10 20:38 linzeliang 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 题目 20. 有效的括号 思路(辅助栈) 用栈后进先出(LIFO)将符号入栈 再利用HashMap存储符号对 由于都是这些符号,所以对每一个符号进行判断,如果左括号直接入栈,右括号再进行判断是否符合 代码 class Solution { public boolean isValid(String 阅读全文
posted @ 2020-12-10 17:56 linzeliang 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 题目 70. 爬楼梯 思路1(数学公式) 利用斐波那契数列的公式即可 代码 class Solution { public int climbStairs(int n) { double sqrt_5 = Math.sqrt(5); double fib_n = Math.pow((1+sqrt_5 阅读全文
posted @ 2020-12-10 14:15 linzeliang 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 题目 78. 子集 思路1(回溯+DFS) 通过该数组[1, 2, 3]构建一棵树 刚开始什么都没有,接下来又两种选择,要么继续不添加,要么添加一个1 如果是没添加的话,那么接下来又有两种选择,还是不添加,或者添加一个1 如果已经添加了一个1,接下来还是有两种选择,不添加,或者添加2 ......以 阅读全文
posted @ 2020-12-10 01:02 linzeliang 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题目 92. 反转链表 II 思路1(迭代) 将反转链表分成3个部分:前一段未反转的部分、待反转链表部分、后一段未反转部分 将3个片段分离后,然后再连接起来 细节注意:如果是从第一个开始反转链表,即前一段未反转的部分不存在,那么返回的结果就直接是反转链表片段的新节点,否则就是head 代码 clas 阅读全文
posted @ 2020-12-08 10:23 linzeliang 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 题目 102. 二叉树的层序遍历 思路1(迭代) BFS广度优先搜索 用队列先进先出特性遍历 代码 class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = ne 阅读全文
posted @ 2020-12-07 17:36 linzeliang 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 题目 145. 二叉树的后序遍历 思路1(递归) 中序先遍历左孩子,然后右孩子,最后父节点 递归遍历 代码 class Solution { List<Integer> res = new ArrayList<>(); public List<Integer> postorderTraversal( 阅读全文
posted @ 2020-12-07 00:25 linzeliang 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 题目 94. 二叉树的中序遍历 思路1(递归) 中序先遍历左孩子,然后父节点,然后右孩子 递归遍历 代码 class Solution { List<Integer> res = new ArrayList<>(); public List<Integer> inorderTraversal(Tre 阅读全文
posted @ 2020-12-07 00:21 linzeliang 阅读(61) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 18 下一页