
LeetCode
Hermione Granger
To be or not to be,that's a question.
展开
-
leetcode-347. 前K个高频元素
给定一个非空的整数数组,返回其中出现频率前k高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的k总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 O(nlogn) ,n...原创 2019-03-14 12:28:00 · 17041 阅读 · 0 评论 -
LeetCode-二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]分析:这道题不同于普通的层次遍历,普通层次遍历只需要定义一个...原创 2019-03-10 17:00:32 · 16846 阅读 · 0 评论 -
leetcode-349. 两个数组的交集
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。思路:定义一个set去重,然后将这...原创 2019-03-11 21:54:56 · 16934 阅读 · 0 评论 -
leetcode-21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路:递归其实并不难理解,就是从宏观去看待它,思路就是建立一个新链表,然后对比l1与l2哪个比较合适,然后就把它赋值给新链表,后面要做的事情就是把剩...原创 2019-03-12 08:41:13 · 16849 阅读 · 0 评论 -
leetcode-23. 合并K个排序链表
合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6解题思路:直接引用21题的合并两个有序链表,然后利用for循环循环调用mergeTwoLists,直到全部合并...原创 2019-03-12 08:48:17 · 17080 阅读 · 0 评论 -
leet-code 303.区域和搜索-数组不可变
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。示例:给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> -3说明:你可以假设数组不可变。...原创 2019-03-29 18:06:22 · 17021 阅读 · 0 评论 -
leet-code 307. 区域和检索 - 数组可修改
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。update(i, val) 函数可以通过将下标为 i 的数值更新为 val,从而对数列进行修改。示例:Given nums = [1, 3, 5]sumRange(0, 2) -> 9 update(1, 2)sumRange(0, 2) -> 8说明:...原创 2019-03-29 18:17:32 · 17237 阅读 · 0 评论 -
leetcode 677. 键值映射(trie解决)
实现一个 MapSum 类里的两个方法,insert 和 sum。对于方法 insert,你将得到一对(字符串,整数)的键值对。字符串表示键,整数表示值。如果键已经存在,那么原来的键值对将被替代成新的键值对。对于方法 sum,你将得到一个表示前缀的字符串,你需要返回所有以该前缀开头的键的值的总和。示例 1:输入: insert("apple", 3), 输出: Null输入: sum("...原创 2019-04-08 19:48:33 · 17160 阅读 · 0 评论 -
leetcode 208. 实现 Trie (前缀树)
实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("app");...原创 2019-04-08 19:41:30 · 17063 阅读 · 0 评论