leetcode
文章平均质量分 53
Crownt
bug
展开
-
leetcode_数组问题的双指针思路
数组操作问题:双指针方法似乎要求扫描一遍的方法大多可以采用双指针解决, 尤其是删除数组中某类不合法的数据 要明确一点,区间 [0, k) 存放的是合法的数据, k指针所指位置的数值没有任何意义,它是下一个合法数据要占据的位置(要么被下一个合法数据覆盖,要么和下一个合法数据交换位置) i指针置于一个for循环中,用于从头到位扫描数组中的各个元素,根据具体条件找出合法的数据,占据k指针所指位...原创 2018-10-26 20:54:26 · 364 阅读 · 0 评论 -
leetcode_链表相关问题
链表与数组一样也是一种顺序的数据结构,但链表与数组最大的区别是链表不能像数组那样进行随机的访问,而必须通过头结点开始依次向后寻找下一个元素,通常在链表中的操作都是操作链表中的Next指针。206. 反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->N...原创 2019-04-07 14:44:02 · 272 阅读 · 0 评论 -
leetcode_二叉树与递归
104. 二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。/** * Definition for a...原创 2019-04-04 12:05:37 · 205 阅读 · 0 评论 -
leetcode_查找相关问题
查找问题的思路查找问题一般分为两类:查找有无,这样的查找问题多用set解决 查找对应关系(键值对应),这样的问题多用map解决在查找问题中,难点往往是分析出需要查找的是什么,然后将待查找的内容放入查找表中(set / map)注意:在java中, set / map 的底层实现有两类,一类是基于红黑树实现的 TreeSet / TreeMap ,另一类是基于哈希表实现的 HashS...原创 2019-03-23 17:27:32 · 396 阅读 · 0 评论 -
leetcode_数组相关问题
283.零移动给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。思路一:保证非零元素的相对顺序,冒泡排序法,时间复杂度为O(n^2),空间复杂度为O(1)class Solu...原创 2019-03-18 23:08:16 · 508 阅读 · 0 评论 -
leetcode_哈希表原理
387. 字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.注意事项:您可以假定该字符串只包含小写字母。 思路一:由于字符串自包含26个小写字母,所以可以开辟一个空间为26的数组,用来记录给个字母出现的...原创 2018-11-28 10:13:40 · 147 阅读 · 0 评论 -
leetcode笔记_优先队列经典问题(N中选出前M)
一个关于优先队列的经典问题在N个元素中选出前M个元素(N远大于M时)思路一:对N的元素进行排序,然后选出前M个元素,时间复杂度为O(NlogN)(采用快排或归并排序等高级排序算法) 思路二:使用优先队列,可以将时间复杂度降低为O(NlogM)。具体实现:使用优先队列维护M个元素,即每次向优先队列中加入一个元素时,需要将当前队列中的最小元素替换出去,保证队列中的M个元素是当前遍历过的元素中...原创 2018-11-18 16:49:15 · 1138 阅读 · 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]说明:输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。思路:利...原创 2018-11-17 20:03:08 · 208 阅读 · 0 评论 -
leetcode笔记_Trie相关问题
208. 实现 Trie (前缀树)实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 false...原创 2018-11-19 22:28:22 · 256 阅读 · 0 评论 -
leetcode笔记_线段树(解决固定区间内的某个子区间的元素的更改,统计与查询)
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) ...原创 2018-11-19 16:45:01 · 564 阅读 · 0 评论 -
leetcode笔记_集合的去重计数
804. 唯一摩尔斯密码词国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-...","-.-.","原创 2018-11-16 21:39:06 · 168 阅读 · 0 评论 -
leetcode_栈的应用(括号匹配)
20. 有效的括号给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。思路:通过栈来记录最需要匹配的元素 ,栈顶元素反映了在嵌套的层次关系中,最近的需要匹配的元素.class Solution { ...原创 2018-11-08 23:11:40 · 169 阅读 · 0 评论 -
leetcode笔记_链表的遍历与删除(虚拟头结点的使用,递归的使用)
203.移除链表元素删除链表中等于给定值val的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5思路:链表的增加和删除操作,一定要通过待处理节点的前一个节点来实现,为了解决头结点没有前继节点的特殊性,需要给链表添加一个虚拟头结点。新建一个用于索...原创 2018-11-10 10:18:59 · 695 阅读 · 0 评论 -
leetcode_数组合并
88. 合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0...原创 2018-10-27 11:39:03 · 411 阅读 · 0 评论 -
leetcode_数组中第k大的元素
215.数组中的第K个最大元素在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤...原创 2018-10-31 21:21:03 · 678 阅读 · 0 评论 -
leetcode_数组排序
75. 颜色分类 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用...原创 2018-10-26 23:15:04 · 281 阅读 · 0 评论 -
leetcode_动态规划相关
动态规划递归:是自上而下的解决问题,假设最基本的问题已经解决了,在递归过程中可能会出现许多重复的子问题的求解过程,可以采用记忆化搜索的方式来优化重复子问题的不足动态规划:是自底向上的解决一个问题,将原问题拆解成若干子问题,同时保证子问题的答案,使得每个子问题只求解一次,最终获得原问题的答案动态规划 ==> 出现重叠子问题、最优子结构 ==> 采用记忆化搜索(自顶向下) 或...原创 2019-04-12 10:53:24 · 276 阅读 · 0 评论