自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 【LeetCode】第235题——二叉搜索树的最近公共祖先(难度:简单)

【LeetCode】第235题——二叉搜索树的最近公共祖先(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [

2020-12-31 16:16:56 125

原创 【LeetCode】第234题——回文链表(难度:简单)

【LeetCode】第234题——回文链表(难度:简单)题目描述解题思路代码详解注意点题目描述请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-linked-list著作权归领扣

2020-12-31 11:36:35 109

原创 【LeetCode】第232题——用栈实现队列(难度:简单)

【LeetCode】第232题——用栈实现队列(难度:简单)题目描述解题思路代码详解注意点题目描述请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你只能使用标准的

2020-12-30 21:05:46 103

原创 【LeetCode】第231题——2的幂(难度:简单)

【LeetCode】第231题——2的幂(难度:简单)题目描述解题思路代码详解除2二进制移位注意点题目描述给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/power-of-two著作权归领扣网络所

2020-12-30 19:29:51 219 2

原创 【LeetCode】第228题——汇总区间(难度:简单)

【LeetCode】第228题——汇总区间(难度:简单)题目描述解题思路代码详解注意点提前说明:本人方法比较复杂且不精简,本条博客仅供思路展示。但是展示的代码几乎条条都有解释,请选择性浏览。题目描述给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:"a->b" ,如果 a

2020-12-29 22:43:47 241

原创 【LeetCode】第226题——翻转二叉树(难度:简单)

【LeetCode】第226题——翻转二叉树(难度:简单)题目描述解题思路代码详解注意点题目描述翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1备注:这个问题是受到 Max Howell 的原问题启发的 :谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这

2020-12-29 20:10:02 183 1

原创 【LeetCode】第225题——用队列实现栈(难度:简单)

【LeetCode】第225题——用队列实现栈(难度:简单)题目描述解题思路代码详解题目描述使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空注意:你只能使用队列的基本操作——也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者 deq

2020-12-29 19:08:42 112

原创 【LeetCode】第219题——存在重复元素II(难度:简单)

【LeetCode】第219题——存在重复元素II(难度:简单)题目描述解题思路代码详解思路一:HashMap思路二:散列表(推荐)注意点题目描述给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例

2020-12-27 21:31:44 172

原创 【LeetCode】第217题——存在重复元素(难度:简单)

【LeetCode】第217题——存在重复元素(难度:简单)题目描述解题思路代码详解思路一:利用排序思路二:HashSet注意点题目描述给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true来源:

2020-12-26 22:35:21 250 1

原创 【LeetCode】第206题——反转链表(难度:简单)

【LeetCode】第206题——反转链表(难度:简单)题目描述解题思路代码详解思路一:迭代思路二:递归注意点题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-li

2020-12-26 21:46:01 170

原创 【LeetCode】第205题——同构字符串(难度:简单)

【LeetCode】第205题——同构字符串(难度:简单)题目描述解题思路代码详解注意点题目描述给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = “egg”, t = “add”输出: true示例 2:输入: s = “foo”, t = “bar”输出: false示

2020-12-26 19:32:40 184

原创 【LeetCode】第204题——计数质数(难度:简单)

【LeetCode】第204题——计数质数(难度:简单)题目描述解题思路代码详解埃氏筛线性筛注意点题目描述统计所有小于非负整数 n 的质数的数量。示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0提示:0 <= n <= 5 * 106来源:力扣(LeetCode)链接:https://leetcode-cn.com/p

2020-12-25 15:38:42 113

原创 【LeetCode】第203题——移除链表元素(难度:简单)

【LeetCode】第203题——移除链表元素(难度:简单)题目描述解题思路代码详解注意点题目描述删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-linked-list-elements著作权归领扣网络所有。商业转载请

2020-12-23 22:22:31 162

原创 【LeetCode】第202题——快乐数(难度:简单)

【LeetCode】第202题——快乐数(难度:简单)题目描述解题思路代码详解注意点题目描述编写一个算法来判断一个数 n 是不是快乐数。快乐数定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例:输入:19输出:true解释:12 + 92 = 8282 + 22 = 6862 +

2020-12-23 20:55:15 358

原创 【LeetCode】第198题——打家劫舍(难度:中等)

【LeetCode】第198题——打家劫舍(难度:简单)题目描述解题思路代码详解注意点题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋

2020-12-23 19:37:06 108

原创 【LeetCode】第191题——位1的个数(难度:简单)

【LeetCode】第191题——位1的个数(难度:简单)题目描述解题思路代码详解注意点题目描述编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例 2:输入:00000000000000000000000010

2020-12-21 22:17:24 326

原创 【LeetCode】第190题——颠倒二进制位(难度:简单)

【LeetCode】第190题——颠倒二进制位(难度:简单)题目描述解题思路代码详解注意点题目描述颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,因此返回 964176192,其二进制表示形式为 0011100101111

2020-12-21 22:02:14 159

原创 【LeetCode】第172题——阶乘后的零(难度:简单)

【LeetCode】第172题——阶乘后的零(难度:简单)题目描述解题思路代码详解思路一:每隔5个数遍历思路二:不断整除5(推荐)注意点题目描述给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。来源:力扣(LeetCode)链接:https://leetcode-cn.com

2020-12-20 22:23:15 315

原创 【LeetCode】第171题——Excel表列序号(难度:简单)

【LeetCode】第171题——Excel表列序号(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个Excel表格中的列名称,返回其相应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: “A”输出: 1示例 2:输入: “AB”输出: 28示例 3:输入: “ZY”输出: 701来源:力扣(LeetCode)链接:htt

2020-12-20 21:14:21 261

原创 【LeetCode】第169题——多数元素(难度:简单)

【LeetCode】第169题——多数元素(难度:简单)题目描述解题思路代码详解思路一:HashMap思路二:Boyer-Moore 投票算法注意点题目描述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 [ n/2 ] 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2来源:力扣(LeetCode)链接:https://leet

2020-12-19 11:08:05 271 2

原创 【LeetCode】第168题——Excel表列名称(难度:简单)

【LeetCode】第168题——Excel表列名称(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个正整数,返回它在 Excel 表中相对应的列名称。例如,1 -> A2 -> B3 -> C...26 -> Z27 -> AA28 -> AB ...示例 1:输入: 1输出: “A”示例 2:输入: 28输出: “AB”示例 3:输入: 701输出: “ZY”来源:力扣(LeetCode)链接:h

2020-12-17 22:28:48 366 1

原创 【LeetCode】第167题——两数之和II - 输入有序数组(难度:简单)

【LeetCode】第167题——两数之和II - 输入有序数组(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的(从1开始)。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11

2020-12-17 21:44:05 185

原创 【LeetCode】第160题——相交链表(难度:简单)

【LeetCode】第160题——相交链表(难度:简单)题目描述解题思路代码详解思路一:ArrayList + contains()思路二:双指针(推荐)注意点题目描述编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 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 wit

2020-12-16 22:53:44 221

原创 【LeetCode】第155题——最小栈(难度:简单)

【LeetCode】第155题——最小栈(难度:简单)题目描述解题思路代码详解注意点题目描述设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],

2020-12-15 22:53:03 180

原创 【LeetCode】第141题——环形链表(难度:简单)

【LeetCode】第141题——环形链表(难度:简单)题目描述解题思路代码详解思路一:ArrayList思路一:HashSet思路二:快慢指针(推荐)注意点题目描述给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在

2020-12-15 21:11:43 307

原创 【LeetCode】第136题——只出现一次的数字(难度:简单)

【LeetCode】第136题——只出现一次的数字(难度:简单)题目描述解题思路代码详解思路一思路二注意点题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4你可以不使用额外空间来实现吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problem

2020-12-14 22:29:41 354 2

原创 【LeetCode】第125题——验证回文串(难度:简单)

【LeetCode】第125题——验证回文串(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/proble

2020-12-14 21:46:12 482

原创 【LeetCode】第122题——买卖股票的最佳时机II(难度:简单)

【LeetCode】第121题——买卖股票的最佳时机II(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所

2020-12-14 19:40:16 124

原创 【LeetCode】第121题——买卖股票的最佳时机(难度:简单)

【LeetCode】第121题——买卖股票的最佳时机(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润

2020-12-13 21:45:50 119

原创 【LeetCode】第119题——杨辉三角II(难度:简单)

【LeetCode】第119题——杨辉三角II(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]进阶:你可以优化你的算法到 O(k) 空间复杂度吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/pascals-triangle-ii著作权归领扣网络所有。商业转载请联系

2020-12-12 11:40:57 191

原创 【LeetCode】第118题——杨辉三角(难度:简单)

【LeetCode】第118题——杨辉三角(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/pascals-triangle著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路采用双循环,外层循环负责第i层,内层

2020-12-10 21:44:07 234

原创 【LeetCode】第112题——路径总和(难度:简单)

【LeetCode】第112题——路径总和(难度:简单)题目描述解题思路代码详解思路一:BFS(本人写的看起来很冗长,但思路很清晰)思路二:递归(此处引用官方题解,~~我太菜了~~)注意点题目描述给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22,返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11-&gt

2020-12-08 22:36:35 217

原创 【LeetCode】第111题——二叉树的最小深度(难度:简单)

【LeetCode】第111题——二叉树的最小深度(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5来源:力扣(LeetCode)链接:https://leetco

2020-12-07 21:39:50 250

原创 【LeetCode】第110题——平衡二叉树(难度:简单)

【LeetCode】第110题——平衡二叉树(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。示例 1:输入:root = [3,9,20,null,null,15,7]输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例 3:输入:root = []输出:tr

2020-12-07 21:04:44 219

原创 【LeetCode】第108题——将有序数组转换为二叉搜索树(难度:简单)

【LeetCode】第108题——将有序数组转换为二叉搜索树(难度:简单)题目描述解题思路代码详解注意点题目描述将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。此外左叶子节点的值需不大于根节点的值,右叶子节点的值需不小于根节点的值。示例:输入:给定有序数组: [-10,-3,0,5,9],一个可能的输出:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:来源

2020-12-03 20:39:25 258

原创 【LeetCode】第107题——二叉树的层次遍历II(难度:简单)

【LeetCode】第107题——二叉树的层次遍历II(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)示例:输入:给定二叉树 [3, 9, 20, null, null, 15, 7]输出:[[15,7], [9,20], [3]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-order

2020-12-03 17:35:18 220

原创 【LeetCode】第104题——二叉树的最大深度(难度:简单)

【LeetCode】第104题——二叉树的最大深度(难度:简单)题目描述解题思路代码详解注意点题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:输入:给定二叉树 [3,9,20,null,null,15,7]输出:3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree著作权归领扣网络所有。

2020-12-02 22:42:57 190

原创 【LeetCode】第101题——对称二叉树(难度:简单)

【LeetCode】第101题——对称二叉树(难度:简单)题目描述解题思路代码详解方法一:迭代方法二:循环注意点题目描述给定一个二叉树,检查它是否是镜像对称的。示例1:二叉树 [1,2,2,3,4,4,3] 是对称的。示例2:二叉树 [1,2,2,null,3,null,3] 不是镜像对称的。进阶:你可以运用递归和迭代两种方法解决这个问题吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/symmetric-tree著作权归领扣

2020-12-02 20:07:28 285

原创 【LeetCode】第100题——相同的树(难度:简单)

【LeetCode】第100题——相同的数(难度:简单)题目描述解题思路代码详解方法一:DFS方法二:BFS注意点题目描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:输出: true示例 2:输入:输出: false示例 3:输入:输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/same-tree著作

2020-12-01 21:54:27 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除