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 · 17036 阅读 · 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 · 16841 阅读 · 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 · 16928 阅读 · 0 评论 -
leetcode-21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路: 递归其实并不难理解,就是从宏观去看待它,思路就是建立一个新链表,然后对比l1与l2哪个比较合适,然后就把它赋值给新链表,后面要做的事情就是把剩...原创 2019-03-12 08:41:13 · 16845 阅读 · 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 · 17076 阅读 · 0 评论 -
leet-code 303.区域和搜索-数组不可变
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange() sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 sumRange(0, 5) -> -3 说明: 你可以假设数组不可变。...原创 2019-03-29 18:06:22 · 17016 阅读 · 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 · 17234 阅读 · 0 评论 -
leetcode 677. 键值映射(trie解决)
实现一个 MapSum 类里的两个方法,insert 和 sum。 对于方法 insert,你将得到一对(字符串,整数)的键值对。字符串表示键,整数表示值。如果键已经存在,那么原来的键值对将被替代成新的键值对。 对于方法 sum,你将得到一个表示前缀的字符串,你需要返回所有以该前缀开头的键的值的总和。 示例 1: 输入: insert("apple", 3), 输出: Null 输入: sum("...原创 2019-04-08 19:48:33 · 17153 阅读 · 0 评论 -
leetcode 208. 实现 Trie (前缀树)
实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。 示例: Trie trie = new Trie(); trie.insert("apple"); trie.search("apple"); // 返回 true trie.search("app"); // 返回 false trie.startsWith("app");...原创 2019-04-08 19:41:30 · 17060 阅读 · 0 评论
分享