![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 70
柠檬不甜会酸
爱吃肉的小姐姐
展开
-
LeetCode1418:点菜展示表
目录一、题目二、示例三、思路四、代码一、题目给你一个数组 orders,表示客户在餐厅中完成的订单,确切地说, orders[i]=[customerNamei,tableNumberi,foodItemi] ,其中 customerNamei 是客户的姓名,tableNumberi 是客户所在餐桌的桌号,而 foodItemi 是客户点的餐品名称。请你返回该餐厅的 点菜展示表 。在这张表中,表中第一行为标题,其第一列为餐桌桌号 “Table” ,后面每一列都是按字母顺序排列的餐原创 2021-07-06 15:44:05 · 142 阅读 · 0 评论 -
LeetCode401:二进制手表
目录一、题目二、示例三、思路四、代码一、题目二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。例如,下面的二进制手表读取 "3:25" 。(图源:WikiMedia - Binary clock samui moon.jpg ,许可协议:Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) )给你一个整数 turned原创 2021-06-21 23:23:25 · 286 阅读 · 0 评论 -
LeetCode342:4的幂
目录一、题目二、示例三、思路四、代码一、题目二、示例三、思路四、代码原创 2021-05-31 14:23:00 · 123 阅读 · 0 评论 -
LeetCode1734:解码异或后的排列
目录一、题目二、示例三、思路四、代码一、题目给你一个整数数组perm,它是前n个正整数的排列,且n是个 奇数。它被加密成另一个长度为 n - 1的整数数组encoded,满足encoded[i] = perm[i] XOR perm[i + 1]。比方说,如果perm = [1,3,2],那么encoded = [2,1]。给你encoded数组,请你返回原始数组perm。题目保证答案存在且唯一。二、示例示例 1:输入:e...原创 2021-05-11 10:44:19 · 98 阅读 · 0 评论 -
LeetCode1486:数组异或操作
目录一、题目二、示例三、思路四、代码一、题目给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。二、示例示例 1:输入:n = 5, start = 0输出:8解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。 "^"...原创 2021-05-07 13:59:59 · 77 阅读 · 0 评论 -
LeetCode·1720:解码异或后的数组
目录一、题目二、示例三、思路四、代码一、题目未知 整数数组 arr 由 n 个非负整数组成。经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。给你编码后的数组 encoded 和原数组 arr 的第一个元素 first(arr[0])。请解码返回原数组 arr 。可以证明答案存在并且是唯一原创 2021-05-06 10:16:54 · 95 阅读 · 0 评论 -
LeetCode83 && LeetCode82: 删除排序链表中的重复元素
目录LeetCode_83:删除排序链表中的重复元素一、题目二、示例三、思路四、代码LeetCode_82:删除排序链表中的重复元素 II一、题目二、示例三、思路四、代码LeetCode_83:删除排序链表中的重复元素一、题目给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。二、示例示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3..原创 2021-03-25 11:34:43 · 149 阅读 · 0 评论 -
LeetCode第232场周赛(4道题——python)
相关链接可点击:1790. 仅执行一次字符串交换能否使两个字符串相等1790_仅执行一次字符串交换能否使两个字符串相等1791_找出星型图的中心节点1792_最大平均通过率1793_好子数组的最大分数...原创 2021-03-15 14:05:40 · 318 阅读 · 0 评论 -
LeetCode第 47 场双周赛(前3道题——python)
相关链接可点击:5680. 找到最近的有相同 X 或 Y 坐标的点5681. 判断一个数字是否可以表示成三的幂的和1781. 所有子字符串美丽值之和目录5680_找到最近的有相同X或Y坐标的点一、题目二、示例三、思路四、代码5681_判断一个数字是否可以成三的幂的和一、题目二、示例三、思路四、代码1781_所有子字符串美丽值之和一、题目二、示例三、思路四、代码5680_找到最近的有相同X或Y坐标的点一、题目给你两个整数.原创 2021-03-08 15:03:30 · 562 阅读 · 8 评论 -
LeetCode354:俄罗斯套娃信封问题(python 动态规划)
目录一、题目二、示例三、思路四、代码一、题目给定一些标记了宽度和高度的信封,宽度和高度以整数对形式(w, h)出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。说明:不允许旋转信封。二、示例示例:输入: envelopes = [[5,4],[6,4],[6,7],[2,3]]输出: 3解释: 最多信封的个...原创 2021-03-04 10:45:58 · 513 阅读 · 2 评论 -
LeetCode338:比特位计数(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)内用一趟扫描做到吗? 要求算法的空间复杂度为O(n)。 你能...原创 2021-03-03 10:41:24 · 951 阅读 · 7 评论 -
LeetCode703:数据流中的第 K 大元素
目录一、题目二、示例三、思路四、代码一、题目设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。请实现 KthLargest类:KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。二、示例示例:输入:["KthLargest", "add", .原创 2021-02-18 11:05:14 · 152 阅读 · 0 评论 -
LeetCode567:字符串的排列
目录一、题目二、示例三、思路四、代码一、题目给定两个字符串s1和s2,写一个函数来判断 s2 是否包含 s1的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。二、示例示例1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例2:输入: s1= "ab" s2 = "eidboaoo"输出: False注意:输入的字符串只包含小写字母 两个...原创 2021-02-10 10:30:20 · 360 阅读 · 1 评论 -
LeetCode665:非递减数列
目录一 、题目二、示例三、思路四、代码一 、题目给你一个长度为n的整数数组,请你判断在 最多 改变1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的:对于数组中所有的i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。二、示例示例 1:输入: nums = [4,2,3]输出: true解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。示例 2...原创 2021-02-07 10:12:24 · 224 阅读 · 3 评论 -
LeetCode480:滑动窗口中位数
目录一、题目二、示例三、思路四、代码一、题目中位数是有序序列最中间的那个数。如果序列的大小是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。例如:[2,3,4],中位数是3[2,3],中位数是 (2 + 3) / 2 = 2.5给你一个数组 nums,有一个大小为 k 的窗口从最左端滑动到最右端。窗口中有 k 个数,每次窗口向右移动 1 位。你的任务是找出每次窗口移动后得到的新窗口中元素的中位数,并输出由它们组成的数组。二、示例示例:给出num..原创 2021-02-03 10:28:38 · 266 阅读 · 0 评论 -
LeetCode724:寻找数组的中心索引
目录一、题目二、示例三、思路四、代码一、题目给定一个整数类型的数组nums,请编写一个能够返回数组 “中心索引” 的方法。我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。二、示例示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出:3解释:索引 3 (nums[3] = 6) 的左侧.原创 2021-01-28 10:16:19 · 191 阅读 · 2 评论 -
LeetCode1128:等价多米诺骨牌对的数量
目录一、题目二、示例三、思路四、代码一、题目给你一个由一些多米诺骨牌组成的列表dominoes。如果其中某一张多米诺骨牌可以通过旋转 0度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b]和dominoes[j] = [c, d]等价的前提是a==c且b==d,或是a==d 且b==c。在0 <= i < j < dominoes.length的前提下,找出满足dom...原创 2021-01-26 10:20:18 · 124 阅读 · 0 评论 -
LeetCode547:省份数量
目录一、题目二、示例三、思路四、代码一、题目有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。原创 2021-01-07 11:30:19 · 253 阅读 · 1 评论 -
LeetCode830:较大分组的位置
目录一、题目二、示例三、思路四、代码一、题目在一个由小写字母构成的字符串 s 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 s = "abbxxxxzyy"中,就含有 "a", "bb", "xxxx", "z" 和 "yy" 这样的一些分组。分组可以用区间 [start, end] 表示,其中 start 和 end 分别表示该分组的起始和终止位置的下标。上例中的 "xxxx" 分组用区间表示为 [3,6] 。我们称所有包含大于或等于三个连续字符的分组为 .原创 2021-01-05 09:48:44 · 135 阅读 · 1 评论 -
LeetCode86:分隔链表
目录一、题目二、示例三、思路四、代码一、题目给你一个链表和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。二、示例示例:输入:head = 1->4->3->2->5->2, x = 3输出:1->2->2->4->3->5三、思路这是两个链表 pre, last 分别表示小于 x 的节点 和大于等于原创 2021-01-04 11:42:51 · 152 阅读 · 3 评论 -
LeetCode435:无重叠区间
目录一、题目二、示例三、思路四、代码一、题目给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。二、示例示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: [ [1,2], [1,2], [1,2] ]输出: 2.原创 2020-12-31 10:14:00 · 99 阅读 · 0 评论 -
LeetCode714:买卖股票的最佳时机含手续费
该题目和以下题目相关联,感兴趣的小伙伴可直接点击下面的链接!LeetCode121:买卖股票的最佳时机LeetCode122:买卖股票的最佳时机 IILeetCode123:买卖股票的最佳时机 IIILeetCode188:买卖股票的最佳时机 IVLeetCode309:最佳买卖股票时机含冷冻期目录一、题目二、示例三、思路四、代码一、题目给定一个整数数组prices,其中第i个元素代表了第i天的股票价格 ;非负整数fee 代表了交易股票的手续费用。...原创 2020-12-28 16:55:02 · 163 阅读 · 0 评论 -
LeetCode123:买卖股票的最佳时机 III
该题目和以下题目相关联,感兴趣的小伙伴可直接点击下面的链接!LeetCode121:买卖股票的最佳时机目录一、题目二、示例三、思路四、代码一、题目给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成两笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。二、示例示例1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票...原创 2020-12-28 16:58:03 · 307 阅读 · 2 评论 -
LeetCode455:分发饼干
目录一、题目二、示例三、思路四、代码一、题目假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j]>= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。二、示例示例1:输入: g = [1,2,3], s =...原创 2020-12-25 10:19:19 · 156 阅读 · 1 评论 -
LeetCode135 && LeetCode1103:分发糖果
博主将 LeetCode135 和 LeetCode1103 两道题放在一起,虽然都是分糖果,但是思路却完全不一样。仅供借鉴。目录一、题目二、示例三、思路四、代码一、题目LeetCode135:分发糖果老师想给孩子们分发糖果,有 N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。那么这样下来,老师至少需要准备多少颗.原创 2020-12-25 10:09:38 · 283 阅读 · 2 评论 -
LeetCode387:字符串中的第一个唯一字符
目录一、题目二、示例三、思路四、代码一、题目给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。二、示例示例: s = "leetcode" 返回 0 s = "loveleetcode" 返回 2提示:你可以假定该字符串只包含小写字母。三、思路方法一:利用OrderedDict创建有序字典。OrderedDict是dict的子类,它记住了内容添加的顺序。因此,第一步,...原创 2020-12-23 09:46:05 · 224 阅读 · 1 评论 -
LeetCode103:二叉树的锯齿形层序遍历
该题和下面这篇文章有一定的关联:LeetCode102 && LeetCode107:二叉树的层次遍历目录一、题目二、示例三、思路四、代码一、题目给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。二、示例例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层...原创 2020-12-22 10:07:51 · 171 阅读 · 1 评论 -
LeetCode48:旋转图像
一、题目给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。二、示例示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9] ],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例 2:给定 matrix =[ [ 5, 1, 9,11],[ 2, 4, 8,10],[13, 3,原创 2020-12-19 14:14:08 · 143 阅读 · 2 评论 -
LeetCode389:找不同
目录一、题目二、示例三、思路四、代码一、题目给定两个字符串s和t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。二、示例示例 1:输入:s = "abcd", t = "abcde"输出:"e"解释:'e' 是那个被添加的字母。示例 2:输入:s = "", t = "y"输出:"y"示例 3:输入:s = "a", t = "aa"输出:"a"示例...原创 2020-12-18 11:03:04 · 217 阅读 · 1 评论 -
LeetCode290:单词规律
目录一、题目二、示例三、思路四、代码一、题目给定一种规律 pattern和一个字符串str,判断 str 是否遵循相同的规律。这里的遵循指完全匹配,例如,pattern里的每个字母和字符串str中的每个非空单词之间存在着双向连接的对应规律。二、示例示例1:输入: pattern = "abba", str = "dog cat cat dog"输出: true示例 2:输入:pattern = "abba", str = "dog c...原创 2020-12-16 09:47:03 · 125 阅读 · 1 评论 -
LeetCode861:翻转矩阵后的得分
目录一、题目二、示例三、思路四、代码一、题目有一个二维矩阵A 其中每个元素的值为0或1。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。二、示例示例:输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]输出:39解释:转换为 [[1,1,1,1],[1,0,0,...原创 2020-12-07 10:42:24 · 182 阅读 · 1 评论 -
LeetCode621:任务调度器
目录一、题目二、示例三、思路四、代码一、题目给你一个用字符数组tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。二、示例.原创 2020-12-05 21:03:35 · 136 阅读 · 0 评论 -
LeetCode659:分割数组为连续子序列
原文来自于链接https://nickhuang1996.blog.csdn.net/article/details/110628258目录一、题目二、解题思路三、代码一、题目给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个子序列,其中每个子序列都由连续整数组成且长度至少为 3 。如果可以完成上述分割,则返回 true ;否则,返回 false 。示例 1:输入: [1,2,3,3,4,5]输出: True解释:你可以分割出转载 2020-12-04 10:27:49 · 112 阅读 · 0 评论 -
LeetCode204:计算质数
目录一、题目二、示例三、思路四、代码一、题目统计所有小于非负整数n的质数的数量。二、示例示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0提示:0 <= n <= 5 * 106三、思路埃拉托斯特尼筛法:即要得到自然数n以内的全部素数,必须把不大于的所有素数的倍数剔除,剩下的就是素..原创 2020-12-03 10:37:09 · 206 阅读 · 1 评论 -
LeetCode321:拼接最大数
目录一、题目二、示例三、思路四、代码一、题目给定长度分别为m和n的两个数组,其元素由0-9构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k <= m + n)个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。求满足该条件的最大数。结果返回一个表示该最大数的长度为k的数组。说明: 请尽可能地优化你算法的时间和空间复杂度。二、示例示例1:输入:nums1 = [3, 4, 6, 5]nu...原创 2020-12-02 14:58:45 · 155 阅读 · 0 评论 -
LeetCode34:在排序数组中查找元素的第一个和最后一个位置
目录一、题目二、示例三、思路四、代码一、题目给定一个按照升序排列的整数数组 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...原创 2020-12-01 09:59:36 · 177 阅读 · 1 评论 -
LeetCode371:两整数之和
目录一、题目内容二、解题思路三、代码一、题目内容不使用运算符+ 和-,计算两整数a、b之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1二、解题思路1.按位异或代表相加,但是对于1+1=10的情况并不能显示进位,因此需要按位与来得到进位值,但是1&1=1在低位,因此需要左移一位变为10,再将这个左移一位后的进位数与按位异或得到数再进行按位异或,得到新的相加值,同样的这...转载 2020-11-27 16:29:41 · 126 阅读 · 0 评论 -
LeetCode454: 四数相加 II
目录一、题目二、示例三、思路四、代码一、题目给定四个包含整数的数组列表A , B , C , D ,计算有多少个元组 (i, j, k, l),使得A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过231 - 1 。二、示例例如:输入:A = [ 1, 2]B = [-2,-1]...原创 2020-11-27 16:12:10 · 196 阅读 · 1 评论 -
LeetCode167: 两数之和 II - 输入有序数组
目录一、题目二、示例三、思路四、代码一、题目给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。二、示例示例:输入: numbers = [2, 7, 11, 15], target = 9输...原创 2020-11-27 16:07:28 · 141 阅读 · 1 评论 -
LeetCode653:两数之和 IV - 输入 BST
目录一、题目二、示例三、思路四、代码一、题目给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。二、示例案例 1:输入: 5 / \ 3 6 / \ \2 4 7Target = 9输出: True案例 2:输入: 5 / \ 3 6/ \ ...原创 2020-11-27 16:03:43 · 145 阅读 · 1 评论