自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(150)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 Leetcode刷题224. 基本计算器

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如。,请你实现一个基本计算器来计算并返回它的值。给你一个字符串表达式。

2024-02-03 14:22:55 406

原创 Leetcode刷题150. 逆波兰表达式求值

该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。逆波兰表达式是一种后缀表达式,所谓后缀就是指算符写在后面。返回一个表示表达式值的整数。

2024-02-02 00:19:14 359

原创 Leetcode刷题209. 长度最小的子数组

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。输入:target = 11, nums = [1,1,1,1,1,1,1,1]输入:target = 7, nums = [2,3,1,2,4,3]著作权归领扣网络所有。给定一个含有 n 个正整数的数组和一个正整数 target。输入:target = 4, nums = [1,4,4]解释:子数组 [4,3] 是该条件下的长度最小的子数组。

2023-04-01 23:55:22 358

原创 Leetcode刷题154. 寻找旋转排序数组中的最小值 II

注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..., a[n-2]]。已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。请你找出并返回数组中的 最小元素。若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]若旋转 7 次,则可以得到 [0,1,4,4,5,6,7]输入:nums = [2,2,2,0,1]输入:nums = [1,3,5]

2023-03-12 00:25:10 204

原创 Leetcode刷题153. 寻找旋转排序数组中的最小值

注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..., a[n-2]]。解释:原数组为 [0,1,2,4,5,6,7] ,旋转 4 次得到输入数组。解释:原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]输入:nums = [4,5,6,7,0,1,2]

2023-03-12 00:09:36 202

原创 Leetcode刷题74. 搜索二维矩阵

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13。输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3。链接:https://leetcode.cn/problems/search-a-2d-matrix。编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。每行的第一个整数大于前一行的最后一个整数。每行中的整数从左到右按升序排列。

2023-02-05 23:35:15 322

原创 Leetcode刷题69. x 的平方根

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。链接:https://leetcode.cn/problems/sqrtx。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。给你一个非负整数 x ,计算并返回 x 的 算术平方根。来源:力扣(LeetCode)

2023-02-04 23:45:32 307

原创 Leetcode刷题35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。链接:https://leetcode.cn/problems/search-insert-position。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入: nums = [1,3,5,6], target = 5。输入: nums = [1,3,5,6], target = 2。输入: nums = [1,3,5,6], target = 7。

2023-02-04 22:25:38 418

原创 Leetcode刷题34. 在排序数组中查找元素的第一个和最后一个位置

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。输入:nums = [5,7,7,8,8,10], target = 8。输入:nums = [5,7,7,8,8,10], target = 6。商业转载请联系官方授权,非商业转载请注明出处。如果数组中不存在目标值 target,返回 [-1, -1]。输入:nums = [], target = 0。nums 是一个非递减数组。输出:[-1,-1]输出:[-1,-1]

2022-12-29 22:43:02 133

原创 Leetcode刷题4. 寻找两个正序数组的中位数

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。链接:https://leetcode.cn/problems/median-of-two-sorted-arrays。解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。商业转载请联系官方授权,非商业转载请注明出处。输入:nums1 = [1,2], nums2 = [3,4]输入:nums1 = [1,3], nums2 = [2]解释:合并数组 = [1,2,3] ,中位数 2。

2022-12-19 00:46:46 280

原创 Leetcode刷题215. 数组中的第K个最大元素

链接:https://leetcode.cn/problems/kth-largest-element-in-an-array。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。商业转载请联系官方授权,非商业转载请注明出处。输入: [3,2,3,1,2,4,5,5,6], k = 4。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。输入: [3,2,1,5,6,4], k = 2。

2022-12-18 23:42:35 334

原创 Leetcode刷题912. 排序数组

链接:https://leetcode.cn/problems/sort-an-array。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给你一个整数数组 nums,请你将该数组升序排列。输入:nums = [5,1,1,2,0,0]输入:nums = [5,2,3,1]输出:[0,0,1,1,2,5]来源:力扣(LeetCode)输出:[1,2,3,5]

2022-12-12 00:50:21 478

原创 Leetcode刷题350. 两个数组的交集 II

给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9] 提示:1

2022-12-04 21:20:33 375

原创 Leetcode刷题349. 两个数组的交集

给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]解释:[4,9] 也是可通过的 提示:1

2022-12-04 20:22:32 198

原创 Leetcode刷题287. 寻找重复数

给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。示例 1:输入:nums = [1,3,4,2,2]输出:2示例 2:输入:nums = [3,1,3,4,2]输出:3 提示:1

2022-12-04 14:45:53 256

原创 Leetcode刷题75. 颜色分类

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。商业转载请联系官方授权,非商业转载请注明出处。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库内置的 sort 函数的情况下解决这个问题。输入:nums = [2,0,2,1,1,0]输入:nums = [2,0,1]nums[i] 为 0、1 或 2。输出:[0,0,1,1,2,2]来源:力扣(LeetCode)输出:[0,1,2]

2022-12-01 01:10:11 203

原创 Leetcode刷题31. 下一个排列

如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。而 arr = [3,2,1] 的下一个排列是 [1,2,3] ,因为 [3,2,1] 不存在一个字典序更大的排列。类似地,arr = [2,3,1] 的下一个排列是 [3,1,2]。例如,arr = [1,2,3] 的下一个排列是 [1,3,2]。输出:[1,3,2]

2022-11-29 00:52:29 110

原创 Leetcode刷题16. 最接近的三数之和

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。链接:https://leetcode.cn/problems/3sum-closest。解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2)。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入:nums = [-1,2,1,-4], target = 1。输入:nums = [0,0,0], target = 1。

2022-11-28 00:11:06 315

原创 Leetcode刷题42. 接雨水

解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。链接:https://leetcode.cn/problems/trapping-rain-water。给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

2022-11-27 22:19:15 90

原创 Leecode刷题5. 最长回文子串

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给你一个字符串 s,找到 s 中最长的回文子串。解释:"aba" 同样是符合题意的答案。来源:力扣(LeetCode)输入:s = "babad"输入:s = "cbbd"s 仅由数字和英文字母组成。

2022-11-20 00:47:38 129

原创 Leecode刷题344. 反转字符串

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。链接:https://leetcode.cn/problems/reverse-string。编写一个函数,其作用是将输入的字符串反转过来。商业转载请联系官方授权,非商业转载请注明出处。输入:s = ["H","a","n","n","a","h"]输入:s = ["h","e","l","l","o"]输出:["h","a","n","n","a","H"]输出:["o","l","l","e","h"]

2022-11-19 13:54:45 99

原创 Leetcode刷题167. 两数之和 II - 输入有序数组

如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1

2022-11-19 00:24:59 315

原创 Leetcode刷题173. 二叉搜索树迭代器

next() 和 hasNext() 操作均摊时间复杂度为 O(1) ,并使用 O(h) 内存。你可以假设 next() 调用总是有效的,也就是说,当调用 next() 时,BST 的中序遍历中至少存在一个下一个数字。注意,指针初始化为一个不存在于 BST 中的数字,所以对 next() 的首次调用将返回 BST 中的最小元素。时间复杂度,初始化和调用hasNext都只需要O(1)的时间,next方法最坏情况下需要O(N)的时间。时间复杂度O(N),对于next和hasNext方法都是O(1)。

2022-11-16 23:37:22 85

原创 Leetcode刷题331. 验证二叉树的前序序列化

链接:https://leetcode.cn/problems/verify-preorder-serialization-of-a-binary-tree。例如,上面的二叉树可以被序列化为字符串 "9,3,4,#,#,1,#,#,2,#,6,#,#",其中 # 代表一个空节点。输入: preorder = "9,3,4,#,#,1,#,#,2,#,6,#,#"例如它永远不会包含两个连续的逗号,比如 "1,,3"。输入: preorder = "9,#,#,1"输入: preorder = "1,#"

2022-11-15 01:46:48 128

原创 Leetcode刷题257. 二叉树的所有路径

链接:https://leetcode.cn/problems/binary-tree-paths。给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入:root = [1,2,3,null,5]输出:["1->2->5","1->3"]树中节点的数目在范围 [1, 100] 内。叶子节点 是指没有子节点的节点。来源:力扣(LeetCode)输入:root = [1]

2022-11-13 23:37:59 128

原创 Leetcode刷题199. 二叉树的右视图

链接:https://leetcode.cn/problems/binary-tree-right-side-view。给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入: [1,2,3,4,null,null,null,7]输入: [1,2,3,null,5,null,4]输入: [1,null,3]输出: [1,3,4,7]输出: [1,3,4]

2022-11-13 21:55:15 122

原创 Leetcode刷题129. 求根节点到叶节点数字之和

给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123。从根到叶子节点路径 4->9->5 代表数字 495。从根到叶子节点路径 4->9->1 代表数字 491。计算从根节点到叶节点生成的 所有数字之和。从根到叶子节点路径 1->2 代表数字 12。从根到叶子节点路径 1->3 代表数字 13。从根到叶子节点路径 4->0 代表数字 40。输入:root = [4,9,0,5,1]

2022-11-13 20:19:29 146

原创 Leetcode刷题449. 序列化和反序列化二叉搜索树

您只需确保二叉搜索树可以序列化为字符串,并且可以将该字符串反序列化为最初的二叉搜索树。序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建。链接:https://leetcode.cn/problems/serialize-and-deserialize-bst。方法二:利用栈遍历,时间和空间复杂度O(N)方法一:递归,时间和空间复杂度O(N)输入:root = [2,1,3]输出:[2,1,3]

2022-11-13 01:37:57 316

原创 Leetcode刷题437. 路径总和 III

给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22。输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。著作权归领扣网络所有。

2022-11-13 00:14:14 179

原创 Leetcode刷题113. 路径总和 II

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22。著作权归领扣网络所有。输入:root = [1,2,3], targetSum = 5。输入:root = [1,2], targetSum = 0。输出:[[5,4,11,2],[5,8,4,5]]叶子节点 是指没有子节点的节点。

2022-11-12 22:27:27 150

原创 Leetcode刷题112. 路径总和

判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum。输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22。输入:root = [1,2,3], targetSum = 5。解释:由于树是空的,所以不存在根节点到叶子节点的路径。不存在 sum = 5 的根节点到叶子节点的路径。解释:等于目标和的根节点到叶节点路径如上图所示。叶子节点 是指没有子节点的节点。

2022-11-12 18:45:00 570

原创 Leetcode刷题110. 平衡二叉树

链接:https://leetcode.cn/problems/balanced-binary-tree。输入:root = [1,2,2,3,3,null,null,4,4]著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入:root = [3,9,20,null,null,15,7]一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。给定一个二叉树,判断它是否是高度平衡的二叉树。来源:力扣(LeetCode)输入:root = []

2022-11-10 00:42:04 89

原创 Leetcode刷题109. 有序链表转换二叉搜索树

链接:https://leetcode.cn/problems/convert-sorted-list-to-binary-search-tree。解释: 一个可能的答案是[0,-3,9,-10,null,5],它表示所示的高度平衡的二叉搜索树。给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为高度平衡的二叉搜索树。商业转载请联系官方授权,非商业转载请注明出处。输入: head = [-10,-3,0,5,9]输出: [0,-3,9,-10,null,5]输入: head = []

2022-11-10 00:10:27 225

原创 Leetcode刷题107. 二叉树的层序遍历 II

链接:https://leetcode.cn/problems/binary-tree-level-order-traversal-ii。给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入:root = [3,9,20,null,null,15,7]输出:[[15,7],[9,20],[3]]输入:root = [1]输入:root = []

2022-11-09 01:21:56 117

原创 Leetcode刷题100. 相同的树

链接:https://leetcode.cn/problems/same-tree。给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。输入:p = [1,2], q = [1,null,2]输入:p = [1,2,3], q = [1,2,3]输入:p = [1,2,1], q = [1,1,2]来源:力扣(LeetCode)

2022-11-09 00:30:23 68

原创 Leetcode刷题99. 恢复二叉搜索树

给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。进阶:使用 O(n) 空间复杂度的解法很容易实现。解释:2 不能在 3 的右子树中,因为 2 < 3。解释:3 不能是 1 的左孩子,因为 3 > 1。输入:root = [3,1,4,null,null,2]输入:root = [1,3,null,null,2]输出:[2,1,4,null,null,3]树上节点的数目在范围 [2, 1000] 内。输出:[3,1,null,null,2]大神的详细解法,传送门。

2022-11-09 00:02:28 217

转载 Morris遍历

实现以上的原则,即实现了morris遍历。

2022-11-06 00:49:44 83

原创 Leetcode刷题124. 二叉树中的最大路径和

路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。链接:https://leetcode.cn/problems/binary-tree-maximum-path-sum。解释:最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42。解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6。输入:root = [-10,9,20,null,null,15,7]输入:root = [1,2,3]来源:力扣(LeetCode)

2022-11-05 22:40:26 153

原创 Leetcode刷题108. 将有序数组转换为二叉搜索树

链接:https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree。给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]输入:nums = [1,3]

2022-11-03 00:32:33 110

原创 Leetcode刷题103. 二叉树的锯齿形层序遍历

链接:https://leetcode.cn/problems/binary-tree-zigzag-level-order-traversal。给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。商业转载请联系官方授权,非商业转载请注明出处。输入:root = [3,9,20,null,null,15,7]输出:[[3],[20,9],[15,7]]输入:root = [1]输入:root = []

2022-11-02 01:16:40 124

蚁群算法的实现

模拟n只蚂蚁在M×N的方块区域内寻找食物的过程。要求在M×N的方块区域内,可随机设置蚁巢和食物地点,在对蚂蚁觅食规律分析与掌握的基础上,编写程序模拟蚁群的觅食过程,并利用动画形式进行展示。

2015-04-05

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

TA关注的人

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