![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 52
LeetCode
Elephant_King
github:https://github.com/Elephant-King9
平时写的代码会上传到github,欢迎学习交流
展开
-
【题解】剑指 Offer II 053. 二叉搜索树中的中序后继
题目链接力扣题目描述给定一棵二叉搜索树和其中的一个节点 p ,找到该节点在树中的中序后继。如果节点没有中序后继,请返回 null 。节点 p 的后继是值比 p.val 大的节点中键值最小的节点,即按中序遍历的顺序节点 p 的下一个节点。示例 1:输入:root = [2,1,3], p = 1输出:2解释:这里 1 的中序后继是 2。请注意 p 和返回值都应是 TreeNode 类型。示例2:输入:root = [5,3,6,2,4,nul...原创 2022-01-09 18:09:57 · 94 阅读 · 0 评论 -
【题解】剑指 Offer II 092. 翻转字符(字符串)(动态规划)
题目链接力扣题目描述如果一个由'0' 和 '1'组成的字符串,是以一些 '0'(可能没有 '0')后面跟着一些 '1'(也可能没有 '1')的形式组成的,那么该字符串是单调递增的。我们给出一个由字符 '0' 和 '1'组成的字符串 s,我们可以将任何'0' 翻转为'1'或者将'1'翻转为'0'。返回使 s单调递增的最小翻转次数。示例 1:输入:s = "00110"输出:1解释:我们翻转最后一位得到 00111.示例 2:输入:s...原创 2022-01-05 09:50:01 · 280 阅读 · 1 评论 -
【题解】剑指 Offer II 008. 和大于等于 target 的最短子数组(双指针)(不定长度滑动窗口)
题目链接力扣题目描述给定一个含有n个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组[4,3]是该条件下的长度最小的子数组。示例 2:输入:target = 4, ...原创 2022-01-04 17:57:31 · 633 阅读 · 0 评论 -
【题解】剑指 Offer 59 - I. 滑动窗口的最大值(双指针)(固定长度滑动窗口)
题目链接力扣题目描述给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: 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 31 [3 -1 -3] 5 3 6 7 ...原创 2022-01-04 17:52:28 · 108 阅读 · 0 评论 -
【题解】剑指 Offer II 026. 重排链表(双指针)(快慢指针)
题目链接力扣题目描述给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0→ L1→ … → Ln-1→ Ln请将其重新排列后变为:L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入: head = [1,2,3,4]输出: [1,4,2,3]示例 2:输入: head = [1,2,3,4,5]输出: [1,5,2,4,3...原创 2022-01-04 14:56:51 · 624 阅读 · 0 评论 -
【题解】剑指 Offer II 023. 两个链表的第一个重合节点(双指针)(快慢指针)
题目链接力扣题目描述给定两个单链表的头节点headA 和 headB ,请找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = ...原创 2022-01-04 13:30:55 · 85 阅读 · 0 评论 -
【题解】剑指 Offer II 022. 链表中环的入口节点(map)(双指针)(快慢指针)
题目链接力扣题目描述给定一个链表,返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next 指针进入环的第一个节点为环的入口节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos ...原创 2022-01-03 16:38:14 · 102 阅读 · 0 评论 -
【题解】剑指 Offer II 021. 删除链表的倒数第 n 个结点(双指针)(快慢指针)
题目链接力扣题目描述给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1001 <=...原创 2022-01-03 16:14:00 · 280 阅读 · 0 评论 -
【题解】剑指 Offer II 019. 最多删除一个字符得到回文(双指针)(对撞指针)
题目链接力扣题目描述给定一个非空字符串 s,请判断如果 最多 从字符串中删除一个字符能否得到一个回文字符串。示例 1:输入: s = "aba"输出: true示例 2:输入: s = "abca"输出: true解释: 可以删除 "c" 字符 或者 "b" 字符示例 3:输入: s = "abc"输出: false提示:1 <= s.length <= 105s 由小写英文字母组成解题思路一开始想的是直接暴力,先判...原创 2022-01-02 00:10:31 · 264 阅读 · 0 评论 -
【题解】18. 四数之和(双指针)(对撞指针)
题目链接力扣题目描述给你一个由 n 个整数组成的数组nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组[nums[a], nums[b], nums[c], nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0 <= a, b, c, d< na、b、c 和 d 互不相同nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案 。...原创 2022-01-01 23:14:21 · 84 阅读 · 0 评论 -
【题解】剑指 Offer II 007. 数组中和为 0 的三个数(双指针)(对撞指针)
题目链接力扣题目描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a ,b ,c ,使得 a + b + c = 0 ?请找出所有和为 0 且 不重复 的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.length <=...原创 2022-01-01 22:53:38 · 464 阅读 · 0 评论 -
【题解】167. 两数之和 II - 输入有序数组(双指针)(对撞指针)
题目链接力扣题目描述给定一个已按照 非递减顺序排列的整数数组numbers ,请你从数组中找出两个数满足相加之和等于目标数target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。示例 1:...原创 2022-01-01 21:10:00 · 74 阅读 · 0 评论 -
【题解】【剑指 Offer】 43. 1~n 整数中 1 出现的次数
题目链接力扣题目描述输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。示例 1:输入:n = 12输出:5示例 2:输入:n = 13输出:6限制:1 <= n <2^31解题思路直接甩文章,套模板【算法】【动态规划】从1到n整数中1出现的次数:O(logn)算法_Elephant_King的博客-CSDN...原创 2021-12-22 20:28:35 · 72 阅读 · 0 评论 -
【题解】【剑指 Offer】 33. 二叉搜索树的后序遍历序列
题目链接力扣题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \1 3示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true解题思路看一下自己写的博客题解class S...原创 2021-12-16 11:07:53 · 1180 阅读 · 0 评论 -
【题解】【剑指 Offer】 62. 圆圈中最后剩下的数字
题目链接力扣题目描述0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出:3示例 2:输入: n = 10, m = 17输出:2限制:1 <...原创 2021-12-15 10:14:38 · 1047 阅读 · 0 评论 -
【题解】【剑指 Offer】 16. 数值的整数次方(快速幂)
题目链接力扣题目描述实现pow(x,n),即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25提示:-100.0 <x&l...原创 2021-12-13 20:05:14 · 162 阅读 · 0 评论 -
【题解】【腾讯】9. 回文数
题目链接力扣题目描述给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左...原创 2021-12-10 21:39:26 · 529 阅读 · 0 评论 -
【题解】【腾讯】8. 字符串转换整数 (atoi)
题目链接力扣题目描述请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步...原创 2021-12-10 21:01:17 · 105 阅读 · 0 评论 -
【题解】【腾讯】7. 整数反转
题目链接力扣题目描述给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231,231− 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:-231 <=...原创 2021-12-10 20:57:32 · 362 阅读 · 0 评论 -
【题解】【腾讯】89. 格雷编码
题目链接力扣题目描述n 位格雷码序列 是一个由 2n 个整数组成的序列,其中:每个整数都在范围 [0, 2n - 1] 内(含 0 和 2n - 1)第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 ,且第一个 和 最后一个 整数的二进制表示 恰好一位不同给你一个整数 n ,返回任一有效的 n 位格雷码序列 。示例 1:输入:n = 2输出:[0,1,3,2]解释:[0,1,3,2] 的二进制表示是 [00,...原创 2021-12-10 18:23:30 · 223 阅读 · 0 评论 -
【题解】【剑指 Offer 68】 - II. 二叉树的最近公共祖先
题目链接力扣题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树:root =[3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, ...原创 2021-12-10 09:33:02 · 108 阅读 · 0 评论 -
【题解】【剑指 Offer】 68 - I. 二叉搜索树的最近公共祖先
题目链接力扣题目描述给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树:root =[6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p =...原创 2021-12-10 09:04:20 · 80 阅读 · 0 评论 -
【题解】【剑指 Offer】 55- II. 平衡二叉树
题目链接力扣题目描述输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \...原创 2021-12-09 09:37:35 · 167 阅读 · 0 评论 -
【题解】【剑指 Offer】 41. 数据流中的中位数
题目链接力扣题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4]的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目...原创 2021-12-08 11:16:54 · 129 阅读 · 0 评论 -
【题解】【剑指 Offer】 61. 扑克牌中的顺子
题目链接力扣题目描述从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例1:输入: [1,2,3,4,5]输出: True示例2:输入: [0,0,1,2,5]输出: True限制:数组长度为 5数组的数取值为 [0, 13] .解题思路一开始没看着大小王能当癞子给爷看蒙了,后来...原创 2021-12-07 09:45:05 · 175 阅读 · 0 评论 -
【题解】【剑指 Offer】 36. 二叉搜索树与双向链表
题目链接力扣题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。特别地,我们希望可以就...原创 2021-12-06 10:25:46 · 52 阅读 · 0 评论 -
【题解】【剑指 Offer】34. 二叉树中和为某一值的路径
题目链接力扣题目描述给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22输出:[[5,4,11,2],[5,8,4,5]]示例 2:输入:root = [1,2,3], targetSum =...原创 2021-12-06 09:54:34 · 425 阅读 · 0 评论 -
【题解】【剑指 Offer】13. 机器人的运动范围(dfs,染色法)
题目链接力扣题目描述地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, ...原创 2021-12-05 10:44:52 · 65 阅读 · 0 评论 -
【题解】【剑指 Offer】12. 矩阵中的路径(dfs)
题目链接力扣题目描述给定一个m x n 二维字符网格board 和一个字符串单词word 。如果word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 "ABCCED"(单词中的字母已标出)。示例 1:输入:board = [["A","B","C"...原创 2021-12-05 09:42:48 · 70 阅读 · 0 评论 -
【题解】【剑指 Offer】 35. 复杂链表的复制
题目链接:力扣class Solution {public: map<Node*,Node*> ma; Node* copyRandomList(Node* head) { if(head==NULL) return NULL; while(!ma.count(head)){ //如果是空的话 Node* temp=new Node(head->val); ma[head]=t原创 2021-11-23 11:10:24 · 298 阅读 · 0 评论