![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
刘小小小小刘
https://liuziqiao.github.io/
展开
-
752.打开转盘数
题目描述你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一...原创 2019-02-15 22:50:13 · 237 阅读 · 0 评论 -
507.完美数
题目描述对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”。给定一个 正整数 n, 如果他是完美数,返回 True,否则返回 False示例:输入: 28输出: True解释: 28 = 1 + 2 + 4 + 7 + 14解决方案class Solution {public: bool checkPerfectNumber(int nu...原创 2019-03-20 20:28:39 · 271 阅读 · 0 评论 -
【LeetCode】199.二叉树的右视图
题目描述给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <--- \ \ 5 4 <---解决方案思路:与之前...原创 2019-07-22 15:44:04 · 100 阅读 · 0 评论 -
【LeetCode】5.最长回文子串
题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: “aba” 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思路一常见错误有些人会忍不住提出一个快速的解决方案,不幸的是,这个解决方案有缺陷(但是可以很容易地纠正):反转S,使之变成S′。找到S 和S′...原创 2019-04-22 17:43:56 · 971 阅读 · 11 评论 -
【LeetCode】47.全排列②
题目描述给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入:[1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]思路这道题是上一道题的延伸,由于数组中有可能会出现重复的数字,按照之前的算法会有重复排列产生,因此我们需要判断前面一个数和当前的数是否相等,如果相等,且其对应的visited的值为1,当前数字才能使用,否则需要跳过,...原创 2019-05-03 09:52:55 · 111 阅读 · 0 评论 -
【LeetCode】8.字符串转换整数 (atoi)
题目描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字...原创 2019-05-03 10:36:02 · 156 阅读 · 0 评论 -
【LeetCode】46.全排列①
题目描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解题思路思路①该题给的输入数组是没有重复项的,故该题采用递归DFS来解决,我们需要用到一个visited数组标记某个数是否访问过,然后DFS递归函数的的...原创 2019-04-24 16:36:55 · 930 阅读 · 2 评论 -
LeetCode每日一练: LRU缓存机制
题目描述题目难度:★★★★这是一道LeetCode上的算法题,题目地址:LRUCache运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - ...原创 2019-05-24 17:31:46 · 4340 阅读 · 9 评论 -
【LeetCode】200.岛屿数量
题目描述给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3题目难度:★★...原创 2019-06-20 19:11:11 · 326 阅读 · 0 评论 -
LeetCode每日一练:朋友圈
题目描述题目难度:★★★★题目链接: https://leetcode-cn.com/problems/friend-circles班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个&n...原创 2019-06-21 15:49:23 · 1692 阅读 · 0 评论 -
【LeetCode】109. 有序链表转换二叉搜索树
题目难度:★★★题目链接: https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree题目描述给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3,...原创 2019-06-24 16:04:48 · 467 阅读 · 0 评论 -
【LeetCode】817.链表组件
题目难度:★★★★链表组件题目链接:链表组件题目描述给定一个链表(链表结点包含一个整型值)的头结点 head。同时给定列表 G,该列表是上述链表中整型值的一个子集。返回列表 G 中组件的个数,这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表 G 中)构成的集合。示例 1:输入: head: 0-&...原创 2019-06-24 19:02:24 · 328 阅读 · 0 评论 -
155.最小栈
题目描述设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。pop() -- 删除栈顶的元素。top() -- 获取栈顶元素。getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pus...原创 2019-02-20 18:17:45 · 253 阅读 · 0 评论 -
23.合并 k 个排序链表
题目描述合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6解决方案我们采用二分法与迭代法来解决该问题,每次讲两个链表合并成一个链表后,将得到的新链表继续进行与下一个...原创 2019-02-25 17:29:45 · 160 阅读 · 0 评论 -
21.合并两个有序链表
题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解决方案/** * Definition for singly-linked list. * struct ListNode { * i...原创 2019-02-25 17:28:42 · 97 阅读 · 0 评论 -
26.RemoveDuplicates I
问题Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this in place w...原创 2018-09-18 16:57:06 · 245 阅读 · 0 评论 -
80.RemoveDuplicates II
问题Follow up for "Remove Duplicates": What if duplicates are allowed at most twice?For example, Given sorted array nums = [1,1,1,2,2,3],Your function should return length = 5, with the first fiv...原创 2018-09-18 16:57:38 · 268 阅读 · 0 评论 -
最大获利
问题给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 ...原创 2018-09-12 12:07:18 · 276 阅读 · 0 评论 -
15.threeSum
问题Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:The solution set must not ...原创 2018-09-27 07:56:22 · 304 阅读 · 0 评论 -
42.Trapping Rain Water(接雨水 ①)
题目描述给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6方法一class Soluti...原创 2019-02-12 23:38:54 · 223 阅读 · 0 评论 -
101.对称二叉树
题目描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3解决方案方法一:递归如果一个树的左...原创 2019-02-18 23:01:50 · 151 阅读 · 0 评论 -
20.有效的括号
题目描述给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false...原创 2019-02-13 16:16:04 · 92 阅读 · 0 评论 -
199.二叉树的右视图
题目描述给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <--- \ \ 5 4 <---解决方案思路:与之前...原创 2019-02-13 17:02:34 · 119 阅读 · 0 评论 -
2.两数相加
题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -...原创 2019-02-24 21:53:20 · 151 阅读 · 0 评论 -
19.删除链表的倒数第N个节点
题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.解决方案思路:用两个指针,第一个指针先走n步,第二个指针再开始和第一个指针一起走,当第一个指针走到末尾的时候,第二个指针刚好走到要删除的节点的...原创 2019-02-24 22:44:16 · 120 阅读 · 0 评论 -
279.完全平方数
题目描述给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.解决方案思路一是考察四平方和定理,to be honest, 这是我第一次听说...原创 2019-02-14 13:59:48 · 2798 阅读 · 0 评论 -
【LeetCode】208.实现Trie(前缀树)
题目难度★★★题目描述实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.start...原创 2019-07-06 13:08:39 · 199 阅读 · 0 评论