LeetCode
5星上将
努力让职业变为兴趣
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode9. 回文数
题目描述给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。示例原创 2021-06-08 09:19:44 · 182 阅读 · 0 评论 -
LeetCode264.丑数2
题目描述编写一个程序,找出第 n 个丑数。丑数就是质因数只包含 2, 3, 5 的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。思路首先我们可以很容易想到递归求解,但是递归求解有一个问题,那就是存在大量重复运算,因此时间复杂度高,在LeetCode上超出时间限制。但是递归的思路可以用来求解LeetCode263.丑数并且在LeetCode上提交通过。如果用递原创 2020-08-21 13:59:16 · 197 阅读 · 0 评论 -
算法题:数组中两数之和是否等于目标数
描述给定一个升序数组s和一个目标数target,求解出数组中是否存在两数之和等于target例如:给定s:[1,2,3,4,5],target = 4返回:True给定s:[1,2,3,4,5],target = 100返回:False思路1.暴力求解双循环。。2.双指针设定一个首指针和尾指针,分别从头和尾遍历求和,当和大于target时,尾指针-1,当和大于target时,首指针+1。code def test(self,s,target): if not原创 2020-08-10 20:45:02 · 449 阅读 · 0 评论 -
LeetCode114. 二叉树展开为链表
题目描述给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树1/ 2 5/ \ 3 4 6将其展开为:123456思路思路很简单,按照例子给的,我们可以先前序访问二叉树节点并将其存到一个数组里,然后再将数组改成一个相当于是只含有右子树的二叉树代码# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, val=0, lef原创 2020-08-02 14:58:56 · 242 阅读 · 0 评论 -
LeetCode309.买卖股票的最佳时机含冷冻期
题目描述给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]思路求解最优解问题,动态规划时首先考虑的。因此我们要考虑状态转移方程,那么本题目原创 2020-07-31 11:44:54 · 289 阅读 · 0 评论 -
LeetCode213.打家劫舍2
题目描述你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [2,3,2]输出: 3解释: 你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。示例原创 2020-07-30 13:58:32 · 285 阅读 · 0 评论 -
LeetCode197.打家劫舍
题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入:[2,7原创 2020-07-30 13:28:57 · 210 阅读 · 0 评论 -
LeetCode63.不同路径
题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[[0,0,0],[0,1,0],[0,0,0]]输出: 2解释:3x3 网格的正中间有一个障碍物。从左上角到右下原创 2020-07-30 13:16:30 · 260 阅读 · 0 评论 -
LeetCode1114.按续打印
题目描述:我们提供了一个类:public class Foo {public void one() { print(“one”); }public void two() { print(“two”); }public void three() { print(“three”); }}三个不同的线程将会共用一个 Foo 实例。线程 A 将会调用 one() 方法线程 B 将会调用 two() 方法线程 C 将会调用 three() 方法请设计修改程序,以确保 two() 方法在 one(原创 2020-06-27 11:06:54 · 215 阅读 · 0 评论 -
LeetCode844.比较含退格的字符串
题目描述给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:S = “ab#c”, T = “ad#c”输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = “ab##”, T = “c#d#”输出:true解释:S 和 T 都会变成 “”。示例 3:输入:S = “a##c”, T = “#a#c”输出:true解释:S 和 T原创 2020-05-12 23:04:37 · 230 阅读 · 0 评论 -
LeetCode496.下一个更大元素
题目描述给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:对于num1中的数字4,你无法在第二个数组中找到下一个更大的原创 2020-05-12 21:29:13 · 337 阅读 · 0 评论 -
LeetCode21.合并两个有序链表
题目描述将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路1.递归先找出子问题,子问题可以化为:当L1[0]小于等L2[0]时,L = L1[0] + merge(L1[1:N],L2)否则, L ...原创 2020-05-04 09:51:20 · 290 阅读 · 0 评论 -
LeetCode19. 删除链表的倒数第N个节点
题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路1比较简单的思路就是先遍历一遍链表求出链表长度,然后再执行删除操作。...原创 2020-05-03 18:10:00 · 205 阅读 · 1 评论 -
LeetCode面试题 10.01. 合并排序的数组
题目描述给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。初始化 A 和 B 的元素数量分别为 m 和 n。示例输入:A = [1,2,3,0,0,0], m = 3B = [2,5,6], n = 3输出:[1,2,2,3,5,6]说明:A.length == n + m思路1将B赋值到A的...原创 2020-03-10 20:47:51 · 287 阅读 · 0 评论 -
LeetCode451:根据字符出现频率排序
题目描述给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。示例 2:输入:"cccaaa"输出:"cccaaa"解释:'c'和'a'都出现三次。此外,"aaaccc"也是有效的答案。...原创 2020-02-26 14:49:54 · 352 阅读 · 0 评论 -
LeetCode819:最常见的单词
题目描述给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案唯一。禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。示例输入:paragraph = “Bob hit a ball, the hit BALL flew far after...原创 2020-02-20 15:54:01 · 250 阅读 · 0 评论 -
LeetCode678:有效的括号字符串
题目描述给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:任何左括号 ( 必须有相应的右括号 )。任何右括号 ) 必须有相应的左括号 ( 。左括号 ( 必须在对应的右括号之前 )。可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。一个空字符串也被视为有效字符串。示例 1:输入: “()”输出: ...原创 2020-02-14 21:01:53 · 1455 阅读 · 0 评论 -
LeetCode1025:除数博弈
题目描述爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:选出任一 x,满足 0 < x < N 且 N % x == 0 。用 N - x 替换黑板上的数字 N 。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参...原创 2020-02-11 13:43:50 · 228 阅读 · 0 评论 -
LeetCode700:二叉搜索树中的搜索
题目描述给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,给定二叉搜索树: 4 / \ 2 7 / \1 3和值: 2你应该返回如下子树: 2 / \ 1 3在上述示例中,如果要找的值是 5,但因为没有节点值为 5,我们应...原创 2020-01-31 10:58:23 · 228 阅读 · 0 评论 -
LeetCode191:位1的个数(C++实现)
题目描述编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例1输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例2输入:00000000000000000000000010000000...原创 2019-11-09 17:23:12 · 497 阅读 · 0 评论 -
LeetCode131:分割回文串(Python实现)
题目描述给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。实例:输入: “aab”输出:[[“aa”,“b”],[“a”,“a”,“b”]]思路动态规划+DFS其中动态规划可以参考:力扣5:最长回文子串判断出某个子串是回文之后,就可以用DFS追加到最终的数组里代码实现 def palindromePartitioni...原创 2019-11-07 15:10:07 · 630 阅读 · 0 评论 -
LeetCode520:检测大写字母(Python实现)
题目描述:给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写,比如"Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:输入: ...原创 2019-10-09 19:40:56 · 477 阅读 · 0 评论 -
LeetCode55:跳跃游戏(Python实现)
LeetCode刷题笔记55:跳跃游戏(Python实现)欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart...原创 2019-10-11 10:33:42 · 342 阅读 · 0 评论 -
LeetCode刷题笔记5:最长回文子串(Python实现)
题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"Solution(转自LeetCode官方题解):2019.11.06回顾补充:上面的状态转移方程表示,当s[i...原创 2019-06-03 15:06:03 · 641 阅读 · 0 评论 -
LeetCode刷题笔记165:比较版本号(Python实现)
题目描述:比较两个版本号version1和version2。如果version1>version2返回1,如果version1<version2返回-1, 除此之外返回0。你可以假设版本字符串非空,并且只包含数字和.字符。.字符不代表小数点,而是用于分隔数字序列。例如,2.5不是“两个半”,也不是“差一半到三”,而是第二版中的第五...原创 2019-05-09 13:50:26 · 560 阅读 · 0 评论 -
LeetCode刷题笔记338:比特位计数(Python实现)
题目描述:给定一个非负整数num。对于0 ≤ i ≤ num 范围中的每个数字i,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?要求算法...原创 2019-09-16 17:36:35 · 478 阅读 · 0 评论 -
LeetCode刷题笔记78:子集(Python实现)
题目描述:给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]SOLUTION1:迭代法比较常规的迭代法思路,循环nums数组,每次...原创 2019-09-16 17:16:04 · 370 阅读 · 0 评论 -
LeetCode刷题笔记985:查询后的偶数和(Python实现)
题目描述:给出一个整数数组A和一个查询数组queries。对于第i次查询,有val =queries[i][0], index= queries[i][1],我们会把val加到A[index]上。然后,第i次查询的答案是 A 中偶数值的和。(此处给定的index = queries[i][1]是从 0 开始的索引,每次查询都会永久修改数组A。)返回...原创 2019-05-16 12:06:02 · 241 阅读 · 0 评论 -
LeetCode刷题笔记263:丑数(Python实现)
题目描述:编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数2, 3, 5的正整数。示例 1:输入: 6输出: true解释: 6 = 2 ×3示例 2:输入: 8输出: true解释: 8 = 2 × 2 ×2示例3:输入: 14输出: false 解释:14不是丑数,因为它包含了另外一个质因数7。说明:1是丑数。 ...原创 2019-05-15 18:40:14 · 525 阅读 · 0 评论 -
LeetCode刷题笔记974:和可被 K 整除的子数组(Python实现)
题目描述:给定一个整数数组 A,返回其中元素之和可被 K整除的(连续、非空)子数组的数目。示例:输入:A = [4,5,0,-2,-3,1], K = 5输出:7解释:有 7 个子数组满足其元素之和可被 K = 5 整除:[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]...原创 2019-05-07 13:05:19 · 973 阅读 · 0 评论 -
LeetCode刷题笔记868:二进制间距(Python实现)
题目描述:给定一个正整数N,找到并返回N的二进制表示中两个连续的 1 之间的最长距离。如果没有两个连续的 1,返回0。示例 1:输入:22输出:2解释:22 的二进制是 0b10110 。在 22 的二进制表示中,有三个 1,组成两对连续的 1 。第一对连续的 1 中,两个 1 之间的距离为 2 。第二对连续的 1 中,两个 1 之间的距离为 1 。答案...原创 2019-05-14 17:55:27 · 341 阅读 · 0 评论 -
LeetCode刷题笔记905: 按奇偶排序数组(Python实现)
题目描述:给定一个非负整数数组A,返回一个由A的所有偶数元素组成的数组,后面跟A的所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。提示:1 <= A.length <= 50000 <= A[i]...原创 2019-05-09 15:12:38 · 394 阅读 · 0 评论 -
LeetCode刷题笔记796:旋转字符串(Python实现)
给定两个字符串, A和B。A的旋转操作就是将A 最左边的字符移动到最右边。例如, 若A = 'abcde',在移动一次之后结果就是'bcdea'。如果在若干次旋转操作之后,A能变成B,那么返回True。示例 1:输入: A = 'abcde', B = 'cdeab'输出: true示例 2:输入: A = 'abcde', B = 'abced'输出: fa...原创 2019-05-06 19:00:27 · 322 阅读 · 0 评论 -
LeetCode刷题笔记923:三数之和的多种可能(Python实现)
题目描述:给定一个整数数组A,以及一个整数target作为目标值,返回满足 i < j < k 且A[i] + A[j] + A[k] == target的元组i, j, k的数量。由于结果会非常大,请返回 结果除以 10^9 + 7 的余数。示例 1:输入:A = [1,1,2,2,3,3,4,4,5,5], target = 8输出:20解释:...原创 2019-05-13 23:26:24 · 327 阅读 · 0 评论 -
LeetCode刷题笔记792:匹配子序列的单词数(Python实现)
题目描述:给定字符串 S 和单词字典 words, 求words[i]中是S的子序列的单词个数。示例:输入: S = "abcde"words = ["a", "bb", "acd", "ace"]输出: 3解释: 有三个是S 的子序列的单词: "a", "acd", "ace"。注意:所有在words和S里的单词都只由小写字母组成。 S 的长度在[...原创 2019-05-06 15:40:55 · 671 阅读 · 0 评论 -
LeetCode刷题笔记2:两数相加(python实现)
题目描述:给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -...原创 2019-05-05 19:43:22 · 477 阅读 · 2 评论 -
LeetCode刷题笔记之560:和为K的子数组(python)
题目描述:给定一个整数数组和一个整数k,你需要找到该数组中和为k的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。 数组中元素的范围是 [-1000, 1000] ,且整数k的范围是[-1e7, 1e7]Solutio...原创 2019-05-05 16:58:20 · 1600 阅读 · 0 评论 -
LeetCode刷题笔记82: 删除排序链表中的重复元素 II(Python实现)
题目描述:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字。示例1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例2:输入: 1->1->1->2->3输出: 2->3Solution1:将头结点与下一个节点值比较,若...原创 2019-05-21 17:19:57 · 362 阅读 · 0 评论 -
LeetCode刷题笔记342:4的幂(Python实现)
给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4的幂次方。示例 1:输入: 16输出: true示例 2:输入: 5输出: false进阶:你能不使用循环或者递归来完成本题吗?Solution1:使用递归这道题和263丑数有相似的地方,递归isPowerOfFour这个方法,直到将num用4除到商为1,则为4的幂,否则不是代码:...原创 2019-05-17 14:42:24 · 504 阅读 · 0 评论 -
LeetCode刷题笔记257:二叉树的所有路径(Python实现)
题目描述:给定一个二叉树,返回所有从根节点到叶子节点的路径。说明:叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3Solution:运用递归的思想,从根节点遍历二叉...原创 2019-09-02 11:33:03 · 800 阅读 · 0 评论
分享