自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode刷题--零钱兑换

LeetCode刷题笔记25322. 零钱兑换代码518. 零钱兑换 II代码 322. 零钱兑换 链接 [链接](给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 你可以认为每种硬币的数量是无限的 示例 1: 输入:coins = [1, 2, 5], amount = 11 输出:3 解释:11 = 5 + 5 + 1 示例 2: 输入:coins = [2], amount = 3 输出

2021-04-09 13:37:26 312

原创 LeetCode刷题--反转链表

LeetCode刷题笔记24剑指 Offer 24. 反转链表题目描述思路代码 剑指 Offer 24. 反转链表 链接 题目描述 剑指 Offer 24. 反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 思路 在遍历链表时,将当前节点的 next指针改为

2021-03-24 10:16:08 337 1

原创 LeetCode刷题--只出现一次的数字

LeetCode刷题笔记23136. 只出现一次的数字题目描述思路代码异或运算的性质 136. 只出现一次的数字 链接 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 思路 容易想到利用字典或者数组进行存储计数,但是都利用了额外的存储空间。因此考虑异或 代码 Pyth

2021-03-09 11:19:11 420

原创 LeetCode每日一题(2.6)

LeetCode每日一题1423. 可获得的最大点数题目描述代码 1423. 可获得的最大点数 链接 题目描述 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。 示例 1: 输入:cardPoints = [1,2,3,4,5,6,1], k = 3 输出:12

2021-02-06 11:18:11 388

原创 LeetCode每日一题(2.5)

LeetCode每日一题1208. 尽可能使字符串相等题目描述思路代码 1208. 尽可能使字符串相等 链接 题目描述 给你两个长度相同的字符串,s 和 t。 将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。 用于变更字符串的最大预算是 maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。 如果你可以将 s 的子字符串转化为它在 t 中对应的子字符串,

2021-02-05 11:12:47 489

原创 LeetCode刷题21--二叉搜索树与双向链表、二叉搜索树序列

LeetCode刷题笔记21剑指 Offer 36. 二叉搜索树与双向链表题目描述思路代码面试题 04.09. 二叉搜索树序列题目描述思路 剑指 Offer 36. 二叉搜索树与双向链表 链接 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 思路 参考 https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/solut

2021-02-04 10:43:06 186

原创 LeetCode刷题20--二叉树的序列化与反序列化

LeetCode刷题笔记20297. 二叉树的序列化与反序列化题目描述代码 297. 二叉树的序列化与反序列化 链接 题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。 代码 前序遍历 # Defi

2021-02-03 23:03:41 398

原创 LeetCode刷题19--数据流的中位数、滑动窗口中位数

LeetCode刷题笔记19295. 数据流的中位数题目描述暴力解法480. 滑动窗口中位数题目描述代码(暴力解法) 295. 数据流的中位数 链接 题目描述 中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两种操作的数据结构: void addNum(int num) - 从数据流中添加一个整数到数据结构中。 double findMedian() - 返回目前

2021-02-03 17:56:34 310

原创 LeetCode刷题18--部分二叉树题目

LeetCode刷题笔记18面试题 04.05. 合法二叉搜索树题目描述思路代码1448. 统计二叉树中好节点的数目题目描述思路代码993. 二叉树的堂兄弟节点题目描述思路代码 面试题 04.05. 合法二叉搜索树 链接 题目描述 实现一个函数,检查一棵二叉树是否为二叉搜索树。 思路 分别判断左右子树是否满足情况即可,左子树的任何一个节点不能大于root.val,并且每个左子树节点不能大于父节点的值,所以判断每个子节点是否符合条件,用max_val和min_val控制 代码 Python # Definit

2021-02-03 15:21:03 299

原创 LeetCode刷题17--二叉搜索树的后序遍历序列

LeetCode刷题笔记17剑指 Offer 33. 二叉搜索树的后序遍历序列题目描述思路代码 剑指 Offer 33. 二叉搜索树的后序遍历序列 链接 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 提示: 数组长度 <= 1000 思路 数组长度小于等于2的情况下均返回True 其他情况: 根节点为数组最后一个数,接着找数组中第一个大于root.val的数的索引,由此分出左右子树,如果左

2021-02-02 22:52:46 268

原创 LeetCode刷题15-- 乘积小于K的子数组

LeetCode刷题笔记15713. 乘积小于K的子数组题目描述思路代码 713. 乘积小于K的子数组 链接 题目描述 给定一个正整数数组 nums。 找出该数组内乘积小于 k 的连续的子数组的个数。 示例 1: 输入: nums = [10,5,2,6], k = 100 输出: 8 解释: 8个乘积小于100的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。 需要注意的是 [10,5,2] 并不是乘积小于100的子数组。 说明: 0

2021-02-01 12:17:54 163

原创 LeetCode刷题14-- 二分查找

LeetCode刷题笔记14704. 二分查找题目描述代码 704. 二分查找 链接 题目描述 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 示例 2: 输入: nums = [-1,0,3,5,9,12], target = 2 输

2021-02-01 10:32:41 252

原创 LeetCode刷题12--分割等和子集、零钱兑换 II

LeetCode刷题笔记12416. 分割等和子集题目描述思路代码 416. 分割等和子集 链接 题目描述 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, 5, 11, 5] 输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11]. 示例 2: 输入: [1, 2, 3, 5] 输出: false 解释: 数组不能分割成两个元素和相等的子集.

2021-01-29 22:15:42 282 1

原创 LeetCode刷题11--部分二叉树问题汇总

LeetCode刷题笔记11部分二叉树问题汇总144. 二叉树的前序遍历题目描述代码94. 二叉树的中序遍历代码145. 二叉树的后序遍历代码102. 二叉树的层序遍历题目描述代码226. 翻转二叉树题目描述思路:递归代码951. 翻转等价二叉树题目描述思路:代码101. 对称二叉树题目描述思路:递归代码669. 修剪二叉搜索树题目描述思路:代码 部分二叉树问题汇总 144. 二叉树的前序遍历 链接 题目描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 代码 递归方式 # Definiti

2021-01-29 17:25:46 350

原创 LeetCode每日一题(1.28)

LeetCode每日一题724. 寻找数组的中心索引题目描述代码 724. 寻找数组的中心索引 链接 题目描述 给定一个整数类型的数组 nums,请编写一个能够返回数组 “中心索引” 的方法。 我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。 示例 1: 输入: nums = [1, 7, 3, 6, 5, 6] 输出:3 解释: 索引 3 (nums[

2021-01-29 16:46:44 117

原创 LeetCode刷题10--从前序与中序遍历序列构造二叉树、从中序与后序遍历序列构造二叉树

LeetCode刷题笔记10105. 从前序与中序遍历序列构造二叉树题目描述思路:代码106. 从中序与后序遍历序列构造二叉树题目描述代码 105. 从前序与中序遍历序列构造二叉树 链接 题目描述 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 思路: 前序遍历的数组第一个元素即为root的值,根据中序遍历的输入划分左子树和右子树,然后递归即可 代码 # Definition for a binary tree node. # class TreeNode(object)

2021-01-28 16:23:30 168

原创 LeetCode刷题9--二叉树中的最大路径和

LeetCode刷题笔记9124. 二叉树中的最大路径和题目描述代码 124. 二叉树中的最大路径和 链接 题目描述 路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回其 最大路径和 。 代码 python # Definition for a binary tree node. # class TreeNode(object): # def __

2021-01-28 16:17:28 274

原创 LeetCode刷题8--对称二叉树

LeetCode刷题笔记8101. 对称二叉树题目描述代码 101. 对称二叉树 链接 题目描述 给定一个二叉树,检查它是否是镜像对称的。 代码 python 递归解法 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left

2021-01-28 15:52:39 176

原创 LeetCode刷题7--Nim游戏

LeetCode刷题笔记7292. Nim 游戏题目描述思路:代码 292. Nim 游戏 链接 题目描述 你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。 你们轮流进行自己的回合,你作为先手。 每一回合,轮到的人拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。 示例 1: 输入:n = 4 输出:false 解释:如果堆中有

2021-01-28 15:14:51 746

原创 LeetCode刷题6--验证二叉搜索树

LeetCode刷题笔记6验证二叉搜索树题目描述代码 验证二叉搜索树 链接 题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 代码 python class Solution(object): def isValidBST(self, root): """ :type root: TreeNode

2021-01-28 14:58:17 311

原创 LeetCode刷题5--相同的树、二叉搜索树的第k大节点

LeetCode刷题笔记5相同的树题目描述代码剑指 Offer 54. 二叉搜索树的第k大节点题目描述思路代码 相同的树 链接 题目描述 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 代码 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x #

2021-01-28 14:06:40 163

原创 LeetCode刷题4--环形链表

LeetCode刷题笔记4环形链表题目描述思路142. 环形链表 II题目描述思路代码 环形链表 链接 题目描述 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。 如果链表中存在环,则返回 true 。 否则,返回 false 。 思

2021-01-28 13:38:26 246

原创 LeetCode刷题3--爬楼梯

LeetCode刷题笔记3爬楼梯题目描述思路代码 爬楼梯 链接 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1 阶 + 2 阶 2 阶 + 1 阶 思路 思路: f[0]=0 f[1]=

2021-01-28 13:20:57 194

原创 LeetCode刷题2--两数相加

2. 两数相加

2021-01-28 13:12:59 409

原创 LeetCode刷题笔记1--两数之和

LeetCode刷题笔记1. 两数之和题目描述代码 1. 两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 你可以按任意顺序返回答案。 链接:link. 代码 class Solution: def twoSum(self, nums,target): if len(nums)<2:

2021-01-28 12:23:43 165

空空如也

空空如也

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

TA关注的人

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