![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
error0318
这个作者很懒,什么都没留下…
展开
-
LeetCode 2. 两数相加
LeetCode 热题 HOT 100原创 2022-03-31 23:05:18 · 187 阅读 · 0 评论 -
LeetCode 21. 合并两个有序链表
LeetCode 热题 HOT 100原创 2022-03-31 22:41:27 · 597 阅读 · 0 评论 -
LeetCode 20. 有效的括号
LeetCode 热题 HOT 100原创 2022-03-31 22:29:44 · 243 阅读 · 0 评论 -
LeetCode 1. 两数之和
LeetCode 热题 HOT 100原创 2022-03-31 22:18:49 · 93 阅读 · 0 评论 -
Leetcode 1654. 到家的最少跳跃次数
题目链接:Leetcode 1654. 到家的最少跳跃次数题意:有一只跳蚤的家在数轴上的位置x处。请你帮助它从位置0出发,到达它的家。跳蚤跳跃的规则如下:它可以往前跳恰好a个位置(即往右跳)。 它可以往后跳恰好b个位置(即往左跳)。 它不能连续往后跳2次。 它不能跳到任何forbidden数组中的位置。跳蚤可以往前跳超过它的家的位置,但是它不能跳到负整数的位置。给你一个整数数组forbidden,其中forbidden[i]是跳...原创 2020-12-02 15:38:22 · 638 阅读 · 0 评论 -
Leetcode 1653. 使字符串平衡的最少删除次数
题目链接:Leetcode 1653. 使字符串平衡的最少删除次数题意:给你一个字符串s,它仅包含字符'a'和'b' 。你可以删除s中任意数目的字符,使得s平衡。我们称s平衡的当不存在下标对(i,j)满足i < j且s[i] = 'b'同时s[j]= 'a'。请你返回使s平衡的最少删除次数。解题思路: 从左向右,a如果在左边,不用删除,b 如果在右边不用删除class Solution {public...原创 2020-11-30 16:32:35 · 364 阅读 · 0 评论 -
Leetcode 1652. 拆炸弹
题目链接:Leetcode 1652. 拆炸弹题意:你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为n的循环数组code以及一个密钥k。为了获得正确的密码,你需要替换掉每一个数字。所有数字会同时被替换。如果k > 0,将第i个数字用接下来k个数字之和替换。 如果k < 0,将第i个数字用之前k个数字之和替换。 如果k == 0,将第i个数字用0替换。由于code是循环的,code[n-1]下一个元...原创 2020-11-30 15:42:03 · 328 阅读 · 0 评论 -
Leetcode 1671. 得到山形数组的最少删除次数
题目链接:Leetcode 1671. 得到山形数组的最少删除次数题意:我们定义arr是山形数组当且仅当它满足:arr.length >= 3 存在某个下标i(从 0 开始)满足0 < i < arr.length - 1且: arr[0] < arr[1] < ... < arr[i - 1] < arr[i] arr[i] > arr[i + 1] > ... > arr[arr.length - 1] ...原创 2020-11-30 15:36:43 · 230 阅读 · 0 评论 -
Leetcode 1670. 设计前中后队列
题目链接:Leetcode 1670. 设计前中后队列题意:请你设计一个队列,支持在前,中,后三个位置的push和pop操作。请你完成FrontMiddleBack类:FrontMiddleBack()初始化队列。 void pushFront(int val)将val添加到队列的最前面。 void pushMiddle(int val)将val添加到队列的正中间。 void pushBack(int val)将val添加到队里的最后面。 ...原创 2020-11-30 15:32:52 · 261 阅读 · 0 评论 -
Leetcode 1669. 合并两个链表
题目链接:Leetcode 1669. 合并两个链表题意:给你两个链表list1和list2,它们包含的元素分别为n个和m个。请你将list1中第a个节点到第b个节点删除,并将list2接在被删除节点的位置。解题思路: 代码详解/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * Lis...原创 2020-11-30 15:25:48 · 374 阅读 · 0 评论 -
Leetcode 1668. 最大重复子字符串
题目链接:Leetcode 1668. 最大重复子字符串题意:原创 2020-11-30 15:18:51 · 479 阅读 · 0 评论 -
LeetCode 941. 有效的山脉数组
题目链接:LeetCode 941. 有效的山脉数组题意: 给定一个整数数组A,如果它是有效的山脉数组就返回true,否则返回false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3 在0 < i< A.length - 1条件下,存在i使得: A[0] < A[1] < ... A[i-1] < A[i] A[i] > A[i+1] > ... > A[A.le...原创 2020-11-03 07:31:00 · 124 阅读 · 0 评论 -
LeetCode 1643. 第 K 条最小指令
题目链接:LeetCode 1643. 第 K 条最小指令题意:Bob 站在单元格(0, 0),想要前往目的地destination:(row, column)。他只能向右或向下走。你可以为 Bob 提供导航指令来帮助他到达目的地destination。指令用字符串表示,其中每个字符:'H',意味着水平向右移动 'V',意味着竖直向下移动能够为 Bob 导航到目的地destination的指令可以有多种,例如,如果目的地destination是(...原创 2020-11-02 22:54:51 · 538 阅读 · 0 评论 -
LeetCode1642. 可以到达的最远建筑
题目链接:LeetCode1642. 可以到达的最远建筑题意:给你一个整数数组heights,表示建筑物的高度。另有一些砖块bricks和梯子ladders。你从建筑物0开始旅程,不断向后面的建筑物移动,期间可能会用到砖块或梯子。当从建筑物i移动到建筑物i+1(下标从 0 开始)时:如果当前建筑物的高度大于或等于下一建筑物的高度,则不需要梯子或砖块 如果当前建筑的高度小于下一个建筑的高度,您可以使用一架梯子或(h[i+1] - h[i])个砖块...原创 2020-11-02 22:32:20 · 418 阅读 · 0 评论 -
LeetCode 1641. 统计字典序元音字符串的数目
题目链接:1641. 统计字典序元音字符串的数目题意:给你一个整数n,请返回长度为n、仅由元音 (a,e,i,o,u) 组成且按字典序排列的字符串数量。字符串s按字典序排列需要满足:对于所有有效的i,s[i]在字母表中的位置总是与s[i+1]相同或在s[i+1]之前。解题思路: 一看就是动态规划。也就是找规律。发现a元素能够在上一次的每个组合前 加, 而 e 元素能够在除了 a 元素开头的其他元素前面加................以...原创 2020-11-02 17:52:38 · 317 阅读 · 0 评论 -
LeetCode 1640. 能否连接形成数组
题目链接:LeetCode 1640. 能否连接形成数组题意:给你一个整数数组arr,数组中的每个整数互不相同。另有一个由整数数组构成的数组pieces,其中的整数也互不相同。请你以任意顺序连接pieces中的数组以形成arr。但是,不允许对每个数组pieces[i]中的整数重新排序。如果可以连接pieces中的数组形成arr,返回true;否则,返回false。解题思路: 判断每个数组的起始元素能否拼接到原数组上,然后 最后添加...原创 2020-11-02 17:43:02 · 276 阅读 · 0 评论 -
LeetCode 349. 两个数组的交集
题意:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]解题思路: 使用unordered_set 存储数组的元素,目的是去重,判断第二个集合中是否有第一个集合中的元素即可代码:class Solution {public: vector<int> intersection(vector<int>& nums1, vector<...原创 2020-11-02 16:42:08 · 163 阅读 · 1 评论 -
LeetCode 1590. 使数组和能被 P 整除
题目链接:LeetCode 1590. 使数组和能被 P 整除题意:给你一个正整数数组nums,请你移除最短子数组(可以为空),使得剩余元素的和能被p整除。不允许将整个数组都移除。请你返回你需要移除的最短子数组的长度,如果无法满足题目要求,返回-1。子数组定义为原数组中连续的一组元素。解题思路: 用到取余的思想const int maxn = 1e5+5;class Solution {private: long long pre...原创 2020-10-11 19:22:22 · 339 阅读 · 0 评论 -
LeetCode 1589. 所有排列中的最大和
题目链接:LeetCode 1589. 所有排列中的最大和题意:有一个整数数组nums,和一个查询数组requests,其中requests[i] = [starti, endi]。第i个查询求nums[starti] + nums[starti+ 1] + ... + nums[endi- 1] + nums[endi]的结果,starti和endi数组索引都是从 0 开始的。你可以任意排列nums中的数字,请你返回所有查询结果之和的最大值。由于答...原创 2020-09-30 16:24:27 · 305 阅读 · 0 评论 -
LeetCode 1588. 所有奇数长度子数组的和
题目链接:LeetCode 1588. 所有奇数长度子数组的和题意:给你一个正整数数组arr,请你计算所有可能的奇数长度子数组的和。子数组定义为原数组中的一个连续子序列。请你返回arr中所有奇数长度子数组的和。示例 1:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:[1] = 1[4] = 4[2] = 2[5] = 5[3] = 3[1,4,2] = 7[4,2,5] = 11[2,5,3] = 10[...原创 2020-09-30 15:45:31 · 274 阅读 · 0 评论 -
LeetCode 538. 把二叉搜索树转换为累加树
题目链接:LeetCode 538. 把二叉搜索树转换为累加树题意:给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 原始二叉搜索树: 5 / \ 2 13输出: 转换为累加树: 18 / \ .原创 2020-09-21 09:35:47 · 89 阅读 · 0 评论 -
LeetCode 78. 子集
题目链接:LeetCode 78. 子集题意:给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []] 解题思路: 直接dfs就可以class Solution {private: vector<vector&l...原创 2020-09-20 08:23:38 · 116 阅读 · 0 评论 -
LeetCode 404. 左叶子之和
题目链接:LeetCode 404. 左叶子之和题意:计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 解题思路: 就正常的dfs或者bfs,判断是否为叶子节点,如果是左节点,就加上他的值DFS/** * Definition for a binary tree node. * struct TreeNode { * ...原创 2020-09-19 20:42:18 · 70 阅读 · 0 评论 -
LeetCode 47. 全排列 II
题目链接:LeetCode 47. 全排列 II题意:给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]解题思路: 对于条件,还是要判断,确保数字只使用过一次,还要保证class Solution {private: vector<vector<int>> ans; int n;public: void d..原创 2020-09-18 12:50:12 · 68 阅读 · 0 评论 -
LeetCode 46. 全排列
题目链接:LeetCode 46. 全排列题意:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] 解题思路: 直接dfs,不用额外判断class Solution {private: vector<vector<int>> ans; int ...原创 2020-09-18 12:39:23 · 98 阅读 · 0 评论 -
LeetCode 37. 解数独
题目链接:LeetCode 37. 解数独题意: 编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。空白格用'.'表示。解题思路: dfs递归查找,需要记录某一行出现的数字,某一列出现的数字,某个块中出现的数字。如果出现过,标记true。然后依次查询,如果不满足,就重新,标记为false...原创 2020-09-15 21:41:00 · 111 阅读 · 0 评论 -
LeetCode 1585. 检查字符串是否可以通过排序子字符串得到另一个字符串
题目链接:LeetCode 1585. 检查字符串是否可以通过排序子字符串得到另一个字符串题意:给你两个字符串s和t,请你通过若干次以下操作将字符串s转化成字符串t:选择s中一个非空子字符串并将它包含的字符就地升序排序。比方说,对下划线所示的子字符串进行操作可以由"14234"得到"12344"。如果可以将字符串s变成t,返回true。否则,返回false。一个子字符串定义为一个字符串中连续的若干字符。示例 1:输入:s...原创 2020-09-14 21:33:18 · 202 阅读 · 0 评论 -
LeetCode 1584. 连接所有点的最小费用
题目链接:LeetCode 1584. 连接所有点的最小费用题意:给你一个points数组,表示 2D 平面上的一些点,其中points[i] = [xi, yi]。连接点[xi, yi]和点[xj, yj]的费用为它们之间的曼哈顿距离:|xi- xj| + |yi- yj|,其中|val|表示val的绝对值。请你返回将所有点连接的最小总费用。只有任意两点之间有且仅有一条简单路径时,才认为所有点都已连接。示例 1:输入:points =...原创 2020-09-14 21:24:54 · 272 阅读 · 0 评论 -
LeetCode 1582. 二进制矩阵中的特殊位置
题目链接:LeetCode 1582. 二进制矩阵中的特殊位置题意: 给你一个大小为rows x cols的矩阵mat,其中mat[i][j]是0或1,请返回矩阵mat中特殊位置的数目。特殊位置定义:如果mat[i][j] == 1并且第i行和第j列中的所有其他元素均为0(行和列的下标均从 0 开始),则位置(i, j)被称为特殊位置。示例 1:输入:mat = [[1,0,0], [0,0,1], ...原创 2020-09-14 21:14:47 · 194 阅读 · 0 评论 -
LeetCode 70. 爬楼梯
题目链接:LeetCode 70. 爬楼梯题意: 假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶解题思路: 典型的动态规划,斐波那契数列class Solution {public: int climbStairs(int n) { ...原创 2020-09-14 21:11:17 · 75 阅读 · 0 评论 -
LeetCode 94. 二叉树的中序遍历
题目链接:LeetCode 94. 二叉树的中序遍历给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]解题思路: 递归的方式,进行中序遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode...原创 2020-09-14 21:05:57 · 70 阅读 · 0 评论 -
LeetCode 79. 单词搜索
题目链接:LeetCode 79. 单词搜索题意: 给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCED", 返回 true给定 word = "..原创 2020-09-13 10:09:21 · 101 阅读 · 0 评论 -
LeetCode 637. 二叉树的层平均值
题目链接:LeetCode 637. 二叉树的层平均值题意: 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。示例 1:输入: 3 / \ 9 20 / \ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。解题思路: BFS模板/** * Definition for a binary tree no...原创 2020-09-12 07:43:58 · 87 阅读 · 1 评论 -
LeetCode 216. 组合总和 III
题目链接:LeetCode 216. 组合总和 III题意: 找出所有相加之和为n的k个数的组合。组合中只允许含有 1 -9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。 解集不能包含重复的组合。解题思路: dfs深度搜索就行,做好限制条件class Solution {public: vector<vector<int>> ans; vector<int> path; void dfs...原创 2020-09-11 08:06:39 · 133 阅读 · 0 评论 -
LeetCode 40. 组合总和 II
题目链接:40. 组合总和 IILeetCode 40. 组合总和 II题意: 给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。解题思路: 和39题思路相同,处理多加一个限制条件,如果按顺序取,下一个和当前重复,跳过class Solution {p...原创 2020-09-10 08:17:49 · 82 阅读 · 0 评论 -
LeetCode 257. 二叉树的所有路径
题目链接:LeetCode 257. 二叉树的所有路径题意: 给定一个二叉树,返回所有从根节点到叶子节点的路径。说明:叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3解题思路: 就DFS模板吧,/** * Definition for a binary...原创 2020-09-09 15:34:51 · 154 阅读 · 0 评论 -
LeetCode 60. 第k个排列
题目链接:LeetCode 60. 第k个排列题意:给出集合[1,2,3,…,n],其所有元素共有n! 种排列。按大小顺序列出所有排列情况,并一一标记,当n= 3 时, 所有排列如下:"123" "132" "213" "231" "312" "321"给定n和k,返回第k个排列。说明:给定n的范围是 [1, 9]。 给定k的范围是[1, n!]。解题思路: 解题思路有好几个,但是找规律无疑是耗时最少的,而且占用内存会很小就...原创 2020-09-09 15:30:39 · 82 阅读 · 0 评论 -
LeetCode 151. 翻转字符串里的单词
题目链接:LeetCode 151. 翻转字符串里的单词题意: 给定一个字符串,逐个翻转字符串中的每个单词。输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。解题思路: 将字符串中分割成单词,放入数组中,然后反向拼接class Solution {public: string r...原创 2020-09-09 15:00:13 · 108 阅读 · 0 评论 -
LeetCode 39. 组合总和
题目链接:LeetCode 39. 组合总和题意: 给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。 解集不能包含重复的组合。示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]解...原创 2020-09-09 14:54:05 · 85 阅读 · 0 评论 -
LeetCode 107. 二叉树的层次遍历 II
题目链接:LeetCode 107. 二叉树的层次遍历 II题意: 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]解题思路: 采用bfs宽度优先搜索/** *...原创 2020-09-08 16:15:16 · 79 阅读 · 0 评论