
LeetCode
高压锅_1220
宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒!
心中有阳光,脚下有力量!
展开
-
leet_code_3
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"转载 2021-04-11 16:07:35 · 137 阅读 · 0 评论 -
有一个用数组Q[1..m]表示的环形队列(先进先出,队尾进队头出),约定队列的容量为m,f为当前队头元素在数组中的位置,r为队尾元素的后一位置(按顺时针方向)。若队列非空且未满,则计算队列中元素个数的
1. 题目有一个用数组Q[1…m]表示的环形队列(先进先出,队尾进队头出),约定队列的容量为m,f为当前队头元素在数组中的位置,r为队尾元素的后一位置(按顺时针方向)。若队列非空且未满,则计算队列中元素个数的公式应为 ?2. 题解2.1 解法1分情况讨论:1.若f<r<=m, 则有r-f <m,即队尾没有超出边界,则为r-f2. 若r<f<=m, r-f < 0, 即队尾超出边界m,那么应为m+r -f综合两种情况,得到答案 (m+r-f) mod m2.原创 2021-07-23 11:28:11 · 1974 阅读 · 0 评论 -
盒子中装有3个红球,3个蓝球,4个黄球,从中抽取三次,每次抽一个球,取完不放回,则每种颜色球各得一个的概率是?
1. 题目盒子中装有3个红球,3个蓝球,4个黄球,从中抽取三次,每次抽一个球,取完不放回,则每种颜色球各得一个的概率是___3/10_____2. 题解第一次抽到 红球的概率 P1 = 3 / (3 + 3 + 4) = 3/10第二次抽到 蓝球的概率 P2 = 3 / (2 + 3 + 4) = 3/9第三次抽到 黄球的概率 P3 = 4/ (2 + 2 + 4) = 4/8则 依次抽到 红球、篮球、黄球 的概率 为 P ’ = P 1 x P 2 x P 3因为 红 蓝 黄 的先后排原创 2021-07-23 11:07:05 · 7421 阅读 · 0 评论 -
栈s和队列q的初始状态为空,元素e1,e3,e2,e5,e6,e4依次压入栈s,一个元素出栈后即进入队列q,若出队列的顺序为e3,e5,e2,e4,e6,e1则栈s的容量要求最小值为?
1. 题目栈s和队列q的初始状态为空,元素e1,e3,e2,e5,e6,e4依次压入栈s,一个元素出栈后即进入队列q,若出队列的顺序为e3,e5,e2,e4,e6,e1则栈s的容量要求最小值为___3___.2. 题解出队先出e3表示e1,e3进栈后出e3(这时栈的容量最大为2),接着出e5,e2表示e2,e5进栈后出e5,e2(这时栈的容量最大为3),再出e4,e6表示e4,e6进栈后出e4,e6(这时栈的容量最大为3),最后出e1,所以答案应该是 3...原创 2021-07-23 10:53:22 · 4228 阅读 · 0 评论 -
LeetCode647_回文子串
【代码】LeetCode647_回文子串。原创 2022-10-26 21:05:12 · 119 阅读 · 0 评论 -
LeetCode1006_笨阶乘
LeetCode1006_笨阶乘转载 2022-07-06 19:51:03 · 130 阅读 · 0 评论 -
LeetCode567_字符串的排列
字符串的排列给你两个字符串s1和s2 ,写一个函数来判断 s2 是否包含 s1的排列。如果是,返回 true ;否则,返回 false 。换句话说,s1 的排列之一是 s2 的 子串 。原创 2022-06-22 19:01:17 · 127 阅读 · 0 评论 -
LeetCode424_替换后的最长重复字符
LeetCode424_替换后的最长重复字符原创 2022-06-13 19:46:56 · 240 阅读 · 0 评论 -
LeetCode76_最小覆盖子串
LeetCode76最小覆盖子串转载 2022-06-07 19:28:27 · 135 阅读 · 0 评论 -
LeetCode1002_查找共用字符
1. 题目给你一个字符串数组 words ,请你找出所有在 words 的每个字符串中都出现的共用字符( 包括重复字符),并以数组形式返回。你可以按 任意顺序 返回答案。 示例 1:输入:words = ["bella","label","roller"]输出:["e","l","l"]示例 2:输入:words = ["cool","lock","cook"]输出:["c","o"] 提示:1 <= words.length <= 1001 <= words[i原创 2022-05-30 19:29:02 · 229 阅读 · 0 评论 -
LeetCode1011_在 D 天内送达包裹的能力
1. 题目传送带上的包裹必须在 days 天内从一个港口运送到另一个港口。传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量(weights)的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 days 天内将传送带上的所有包裹送达的船的最低运载能力。示例 1:输入:weights = [1,2,3,4,5,6,7,8,9,10], days = 5输出:15解释:船舶最低载重 15 就能够在 5 天内送达所有包裹,如下所示:第 1原创 2022-05-17 20:43:46 · 237 阅读 · 0 评论 -
LeetCode1024_视频拼接
1. 题目你将会获得一系列视频片段,这些片段来自于一项持续时长为 time 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。使用数组 clips 描述所有的视频片段,其中 clips[i] = [starti, endi] 表示:某个视频片段开始于 starti 并于 endi 结束。甚至可以对这些片段自由地再剪辑:例如,片段 [0, 7] 可以剪切成 [0, 1] + [1, 3] + [3, 7] 三部分。我们需要将这些片段进行再剪辑,并将剪辑后的内容拼接成覆盖整个运动过程的片段([0原创 2022-05-17 20:02:22 · 125 阅读 · 0 评论 -
LeetCode1014_最佳观光组合
1. 题目给你一个正整数数组 values,其中 values[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的 距离 为 j - i。一对景点(i < j)组成的观光组合的得分为 values[i] + values[j] + i - j ,也就是景点的评分之和 减去 它们两者之间的距离。返回一对观光景点能取得的最高分。示例 1:输入:values = [8,1,5,2,6]输出:11解释:i = 0, j = 2, values[i] + values[j] +转载 2022-05-11 20:30:21 · 184 阅读 · 0 评论 -
LeetCode1025_除数博弈
1. 题目爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字 n 。在每个玩家的回合,玩家需要执行以下操作:选出任一 x,满足 0 < x < n 且 n % x == 0 。用 n - x 替换黑板上的数字 n 。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回 true 。假设两个玩家都以最佳状态参与游戏。示例 1:输入:n = 2输出:true解释:爱丽丝选择 1,鲍勃无法进行操作。示例 2:输入:n转载 2022-04-27 21:22:09 · 226 阅读 · 0 评论 -
LeetCode1482_制作 m 束花所需的最少天数
1. 题目给你一个整数数组 bloomDay,以及两个整数 m 和 k 。现需要制作 m 束花。制作花束时,需要使用花园中 相邻的 k 朵花 。花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中。请你返回从花园中摘 m 束花需要等待的最少的天数。如果不能摘到 m 束花则返回 -1 。示例 1:输入:bloomDay = [1,10,3,10,2], m = 3, k = 1输出:3解释:让我们一起观察这三天的花开过程,x 表示花开,而 _ 表示原创 2022-04-20 20:30:55 · 151 阅读 · 0 评论 -
LeetCode1207_独一无二的出现次数
1. 题目给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。示例 1:输入:arr = [1,2,2,1,1,3]输出:true解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。示例 2:输入:arr = [1,2]输出:false示例 3:输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]输出:true 提示:原创 2022-04-18 20:44:30 · 168 阅读 · 0 评论 -
LeetCode1365_有多少小于当前数字的数字
1. 题目给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。以数组形式返回答案。示例 1:输入:nums = [8,1,2,2,3]输出:[4,0,1,1,3]解释: 对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。 对于 nums[1]=1 不存在比它小的数字。对于原创 2022-04-14 20:58:42 · 123 阅读 · 0 评论 -
LeetCode11_跳水板
1. 题目你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。返回的长度需要从小到大排列。示例 1输入:shorter = 1longer = 2k = 3输出: [3,4,5,6]解释:可以使用 3 次 shorter,得到结果 3;使用 2 次 shorter 和 1 次 longer,得到结果 4 。以此类推,得到最终结果。提示:0 &l转载 2022-04-14 20:32:33 · 104 阅读 · 0 评论 -
LeetCode13_罗马数字转整数
1. 题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V +转载 2022-04-07 21:08:09 · 130 阅读 · 0 评论 -
LeetCode85_最大矩形
1. 题目给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例 1:输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:6解释:最大矩形如上图所示。示例 2:输入:matrix = []输出:0示例 3:输入:matrix = [["0"]]输出:0转载 2022-04-02 14:39:30 · 137 阅读 · 0 评论 -
LeetCode207_课程表
1. 题目你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。示例 1转载 2022-03-31 19:59:44 · 113 阅读 · 0 评论 -
LeetCode49_字母异位词分组
1. 题目给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。示例 1:输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]示例 2:输入: strs = [""]输出: [[""]]示例 3:输入: strs = [转载 2022-03-31 19:17:17 · 108 阅读 · 0 评论 -
LeetCode56_合并区间
1. 题目以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:intervals = [[1转载 2022-03-30 20:11:14 · 99 阅读 · 0 评论 -
LeetCode42_接雨水
1. 题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2:输入:height = [4,2,0,3,2,5]输出:9 提示:n == height.length1 <= n &l原创 2022-03-29 20:22:40 · 122 阅读 · 0 评论 -
LeetCode34_在排序数组中查找元素的第一个和最后一个位置
1. 题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:输入:nu原创 2022-03-28 14:02:28 · 101 阅读 · 0 评论 -
LeetCode32_最长有效括号
1. 题目给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = "(()"输出:2解释:最长有效括号子串是 "()"示例 2:输入:s = ")()())"输出:4解释:最长有效括号子串是 "()()"示例 3:输入:s = ""输出:0 提示:0 <= s.length <= 3 * 104s[i] 为 '(' 或 ')'2. 题解2.1 使用栈的方式class Solution:原创 2022-03-25 11:26:30 · 415 阅读 · 0 评论 -
LeetCode106_从中序与后序遍历序列构造二叉树
1. 题目给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。提示:1 <= inorder.length <= 3000postorder.length == inorder.length-3000 <= inorder[i], postorder[i] <= 3000inorder 和 postorder 都由 不同 的值组成postorde原创 2022-03-22 20:00:36 · 582 阅读 · 0 评论 -
LeetCode105_从前序与中序遍历序列构造二叉树
1. 题目给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。2. 题解from typing import Listclass TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left sel转载 2022-03-22 19:42:01 · 132 阅读 · 0 评论 -
LeetCode114_二叉树展开为链表
1. 题目给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。2. 题解class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left转载 2022-03-22 18:58:10 · 114 阅读 · 0 评论 -
LeetCode287_寻找重复数
1. 题目给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。示例 1:输入:nums = [1,3,4,2,2]输出:2示例 2:输入:nums = [3,1,3,4,2]输出:3 提示:1 <= n <= 105nums.length转载 2022-02-16 20:59:23 · 114 阅读 · 0 评论 -
LeetCode238_除自身以外数组的乘积
1. 题目给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。请不要使用除法,且在 O(n) 时间复杂度内完成此题。示例 1:输入: nums = [1,2,3,4]输出: [24,12,8,6]示例 2:输入: nums = [-1,1,0,-3,3]输出: [0,0,9,0,0] 提示:原创 2022-02-16 20:32:54 · 402 阅读 · 0 评论 -
LeetCode239_滑动窗口最大值
1. 题目给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值 。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7原创 2022-02-16 10:41:24 · 178 阅读 · 0 评论 -
LeetCode139_单词拆分
1. 题目给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。示例 2:输入: s = "applepenapple", wordDic转载 2022-01-28 17:32:06 · 365 阅读 · 0 评论 -
LeetCode518_零钱兑换 II
1. 题目给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带符号整数。示例 1:输入:amount = 5, coins = [1, 2, 5]输出:4解释:有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+15=1+1+1+1+1示例 2:输入:amount = 3, c转载 2022-01-28 16:11:01 · 149 阅读 · 0 评论 -
LeetCode213_打家劫舍 II
1. 题目你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。示例 1:输入:nums = [2,3,2]输出:3解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2),原创 2022-01-27 17:23:25 · 117 阅读 · 0 评论 -
LeetCode198_打家劫舍
1. 题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。示例 2原创 2022-01-27 16:56:21 · 144 阅读 · 0 评论 -
LeetCode1114_按序打印
1. 题目给你一个类:public class Foo { public void first() { print("first"); } public void second() { print("second"); } public void third() { print("third"); }}三个不同的线程 A、B、C 将会共用一个 Foo 实例。线程 A 将会调用 first() 方法线程 B 将会调用 second() 方法线程 C 将会调用 third() 方法转载 2022-01-27 15:30:25 · 167 阅读 · 0 评论 -
LeetCode260_只出现一次的数字 III
1. 题目给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?示例 1:输入:nums = [1,2,1,3,2,5]输出:[3,5]解释:[5, 3] 也是有效的答案。示例 2:输入:nums = [-1,0]输出:[-1,0]示例 3:输入:nums = [0,1]输出:[1,0]提示:2 <= nu原创 2022-01-25 16:29:50 · 520 阅读 · 0 评论 -
LeetCode137_只出现一次的数字 II
1. 题目137. 只出现一次的数字 II给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,99]输出:99 提示:1 <= nums.length <= 3 * 104-231 <= nums[i] <= 231 - 1nums 中,除某个元素仅出现 一次 外,其余每转载 2022-01-25 16:03:23 · 106 阅读 · 0 评论 -
LeetCode31_下一个排列
1. 题目解题思路:一、https://leetcode-cn.com/problems/next-permutation/solution/xia-yi-ge-pai-lie-by-leetcode-solution/二、https://leetcode-cn.com/problems/next-permutation/solution/xia-yi-ge-pai-lie-suan-fa-xiang-jie-si-lu-tui-dao-/实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列转载 2022-01-17 20:56:04 · 105 阅读 · 0 评论