![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode-剑指Offer
白露塞纳
星辰!
展开
-
【LeetCode-剑指Offer】51. 数组中的逆序对
一、题目在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5限制:0 <= 数组长度 <= 50000二、解决三、参考看视频吧...原创 2020-12-23 10:50:30 · 127 阅读 · 0 评论 -
LeetCode-剑指 Offer 题目集
题目集汇总题号 题目链接 知识点 博客题解链接 完成时间 备注题号题目题解链接标签备注遍数03数组中重复的数字【LeetCode-剑指Offer】03. 数组中重复的数字数组、哈希表04二维数组中的查找数组、双指针05替换空格06从尾到头打印链表链表07重建二叉树树、递归09用两个栈实现队列栈、设计10- I斐波那契数列递归10- II青蛙跳台阶问题递归原创 2020-12-21 17:19:43 · 631 阅读 · 0 评论 -
【LeetCode】236. 二叉树的最近公共祖先(同剑指 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, q = 1输出: 3解释: 节点 5 和节点 1原创 2020-08-31 14:04:50 · 146 阅读 · 0 评论 -
【LeetCode】235. 二叉搜索树的最近公共祖先(同剑指 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 = 2, q = 8输出: 6 解释:原创 2020-08-30 20:27:38 · 189 阅读 · 0 评论 -
【LeetCode】239、滑动窗口最大值(同剑指 Offer 59 - I)
一、题目给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。进阶:你能在线性时间复杂度内解决此题吗?示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1原创 2020-08-23 15:15:44 · 262 阅读 · 0 评论 -
【LeetCode-剑指Offer】剑指 Offer 17. 打印从1到最大的n位数
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-19 15:35:09 · 224 阅读 · 0 评论 -
【LeetCode-剑指Offer】58 - II. 左旋转字符串
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-17 18:05:31 · 107 阅读 · 0 评论 -
【LeetCode-剑指Offer】57 - II. 和为s的连续正数序列
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-17 17:11:09 · 301 阅读 · 0 评论 -
【LeetCode】151. 翻转字符串里的单词(同剑指 Offer 58 - I)
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-16 18:56:55 · 139 阅读 · 0 评论 -
【LeetCode】110. 平衡二叉树(同剑指 Offer 55 - II)
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-16 18:25:25 · 169 阅读 · 0 评论 -
【LeetCode】34. 在排序数组中查找元素的第一个和最后一个位置(同剑指 Offer 53 - I)
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-16 16:19:19 · 163 阅读 · 0 评论 -
【LeetCode-剑指Offer】65. 不用加减乘除做加法
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-11 15:43:12 · 192 阅读 · 0 评论 -
【LeetCode-剑指Offer】62. 圆圈中最后剩下的数字
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-11 11:34:17 · 188 阅读 · 0 评论 -
【LeetCode-剑指Offer】61. 扑克牌中的顺子
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-10 18:39:48 · 216 阅读 · 0 评论 -
【LeetCode】104. 二叉树的最大深度(同剑指 Offer 55 - I)
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-09 18:58:01 · 115 阅读 · 0 评论 -
【LeetCode-剑指Offer】54. 二叉搜索树的第k大节点
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-09 17:54:36 · 223 阅读 · 0 评论 -
【LeetCode-剑指Offer】53 - II. 0~n-1中缺失的数字
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-09 16:58:02 · 195 阅读 · 0 评论 -
【LeetCode】160. 相交链表(同剑指 Offer 52)
一、题目编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为原创 2020-12-09 14:55:24 · 111 阅读 · 0 评论 -
【LeetCode-剑指Offer】50. 第一个只出现一次的字符
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-09 14:23:17 · 150 阅读 · 0 评论 -
【LeetCode】53. 最大子序和(同剑指 Offer 42)
一、题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解二、解决class Solution { public int maxSubArray(int[] nums) { int ThisSum, MaxSum原创 2020-09-06 09:54:10 · 127 阅读 · 0 评论 -
【LeetCode】154. 寻找旋转排序数组中的最小值 II(同 剑指 Offer 11)
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-08 19:33:45 · 146 阅读 · 0 评论 -
【LeetCode-剑指Offer】40. 最小的k个数
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-06 19:51:46 · 132 阅读 · 0 评论 -
【LeetCode】155. 最小栈(同 剑指 Offer 30)
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-06 19:44:09 · 121 阅读 · 0 评论 -
【LeetCode】54. 螺旋矩阵(同 剑指 Offer 29)
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-06 18:48:04 · 108 阅读 · 0 评论 -
【LeetCode】101. 对称二叉树(同 剑指 Offer 28)
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-06 18:13:19 · 111 阅读 · 0 评论 -
【LeetCode】226. 翻转二叉树(同 剑指 Offer 27)
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-06 17:28:06 · 153 阅读 · 0 评论 -
【LeetCode】21. 合并两个有序链表(同 剑指 Offer 25)
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-06 16:17:33 · 123 阅读 · 0 评论 -
【LeetCode-剑指Offer】22. 链表中倒数第k个节点
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-06 15:40:00 · 154 阅读 · 0 评论 -
【LeetCode】169. 多数元素(同 剑指 Offer 39)
一、题目给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2二、题目1、暴力思路:代码:时间复杂度: O(n2n^2n2)空间复杂度: O(n)2、Map思路:代码:时间复杂度: O(n)空间复杂度: O(n)3、摩尔投票法思路:代码:时间原创 2020-09-03 16:21:55 · 134 阅读 · 0 评论 -
【LeetCode-剑指Offer】21. 调整数组顺序使奇数位于偶数前面
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-05 18:45:15 · 160 阅读 · 0 评论 -
【LeetCode-剑指Offer】18. 删除链表的节点
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-05 18:41:01 · 90 阅读 · 0 评论 -
【LeetCode】191. 位1的个数(同 剑指 Offer 15)
一、题目编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:输入:00000000000000000000000010000000输出:1解释:输入的二进制串 00000000000000000000000010000000 中,原创 2020-09-22 18:55:25 · 163 阅读 · 0 评论 -
【LeetCode-剑指Offer】09. 用两个栈实现队列
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-05 16:54:53 · 138 阅读 · 0 评论 -
【LeetCode-剑指Offer】06. 从尾到头打印链表
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-05 16:35:55 · 159 阅读 · 0 评论 -
【LeetCode-剑指Offer】05. 替换空格
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-05 16:01:09 · 124 阅读 · 0 评论 -
【LeetCode-剑指Offer】03. 数组中重复的数字
一、题目二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)3、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)三、参考1、2、3、...原创 2020-12-05 15:46:17 · 197 阅读 · 0 评论 -
【LeetCode】70. 爬楼梯(同 剑指 Offer 10- II)
一、题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意: 给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶二、解决1、思路:代码:时间复杂度:空间复杂度:1、原创 2020-10-08 18:04:57 · 177 阅读 · 0 评论 -
【LeetCode-剑指Offer】10- I. 斐波那契数列
一、题目给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的 深拷贝。我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示:val:一个表示 Node.val 的整数。random_index:随机指针指向的节点索引(范围从 0 到 n-1);如果不指向任何节点,则为 null 。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2原创 2020-12-04 16:16:38 · 156 阅读 · 0 评论 -
【LeetCode】138. 复制带随机指针的链表(同 剑指 Offer 35)
一、题目给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的 深拷贝。我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示:val:一个表示 Node.val 的整数。random_index:随机指针指向的节点索引(范围从 0 到 n-1);如果不指向任何节点,则为 null 。示例 1:输入:head = [[7,null],[13,0],[11,4],[10原创 2020-12-04 15:41:58 · 118 阅读 · 0 评论 -
【LeetCode-剑指Offer】64. 求1+2+…+n
一、题目求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000二、解决1、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)2、思路:代码:时间复杂度: O(n)O(n)O(n)空间复杂度: O(n)O(n)O(n)原创 2020-12-03 16:20:42 · 300 阅读 · 0 评论