- 博客(20)
- 收藏
- 关注
原创 leetcode刷题笔记【19】
2 ,4 和 8 分别都只有一个数位为 1 ,分别为 “10” ,“100” 和 “1000”。15 和 30 分别有 4 个数位为 1 :“1111” 和 “11110”。如果你可以使数组变有序,请你返回 true ,否则返回 false。解释:数组已经是有序的,所以我们返回 true。输入:nums = [8,4,2,30,15]输入:nums = [3,16,8,4,2]输入:nums = [1,2,3,4,5]解释:无法通过操作使数组变为有序。leetcode刷题笔记【19】
2024-07-13 15:29:28
254
原创 leetcode刷题笔记【18】
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。grid[i][j] 的值为 ‘0’ 或 ‘1’此外,你可以假设该网格的四条边均被水包围。leetcode刷题笔记【18】200. 岛屿数量【中等】输入:grid = [输入:grid = [
2024-07-12 23:19:52
118
原创 leetcode刷题笔记【17】
展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null。输出:[1,null,2,null,3,null,4,null,5,null,6]输入:root = [1,2,5,3,4,null,6]展开后的单链表应该与二叉树 先序遍历 顺序相同。树中结点数在范围 [0, 2000] 内。114. 二叉树展开为链表【中等】leetcode刷题笔记【17】输入:root = [0]输入:root = []
2024-07-12 00:07:58
149
原创 leetcode刷题笔记【16】
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。输入:root = [5,1,4,null,null,3,6]解释:根节点的值是 5 ,但是右子节点的值是 4。所有左子树和右子树自身必须也是二叉搜索树。节点的右子树只包含 大于 当前节点的数。树中节点数目范围在[1, 104] 内。102. 二叉树的层序遍历【重的】输入:root = [2,1,3]leetcode刷题笔记【16】只包含 小于 当前节点的数。
2024-07-10 23:23:17
140
原创 leetcode刷题笔记【15】
给定一个二叉树的根节点 root ,返回 它的 中序 遍历。进阶: 递归算法很简单,你可以通过迭代算法完成吗?输入:root = [1,null,2,3]树中节点数目在范围 [0, 100] 内。leetcode刷题笔记【15】94. 二叉树的中序遍历【简单】输入:root = [1]输入:root = []输出:[1,3,2]
2024-07-09 21:10:54
153
原创 leetcode刷题笔记【13-14】
进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表。链表中节点的数目在范围 [0, 5 * 104] 内。输入:head = [-1,5,3,4,0]输入:head = [4,2,1,3]leetcode刷题笔记【13】输出:[-1,0,3,4,5]输出:[1,2,3,4]输入:head = []类型:链表的归并排序。
2024-07-08 20:48:57
158
原创 leetcode刷题笔记【12】
输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]
2024-07-05 23:11:14
208
原创 leetcode刷题笔记【11】
输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]输出:[[1,0,1],[0,0,0],[1,0,1]]leetcode刷题笔记【11】
2024-07-05 00:03:33
170
原创 leetcode刷题笔记【10】
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。输入:nums = [7,8,9,11,12]解释:范围 [1,2] 中的数字都在数组中。输入:nums = [3,4,-1,1]输入:nums = [1,2,0]解释:1 在数组中,但 2 没有。leetcode刷题笔记【10】41. 缺失的第一个正数【困难】解释:最小的正数 1 没有出现。
2024-07-04 23:34:45
240
原创 leetcode刷题笔记【9】
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。输入: nums = [-1,1,0,-3,3]输入: nums = [1,2,3,4]leetcode刷题笔记【9】输出: [24,12,8,6]输出: [0,0,9,0,0]
2024-07-02 21:10:59
120
原创 leetcode刷题笔记【8】
返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “”。解释:最小覆盖子串 “BANC” 包含来自字符串 t 的 ‘A’、‘B’ 和 ‘C’。对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。输入:s = “ADOBECODEBANC”, t = “ABC”解释: t 中两个字符 ‘a’ 均应包含在 s 的子串中,输入: s = “a”, t = “aa”输入:s = “a”, t = “a”76. 最小覆盖子串【困难】
2024-07-01 23:20:32
188
原创 leetcode刷题笔记【7】
给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数。输入:nums = [1,1,1], k = 2。输入:nums = [1,2,3], k = 3。560. 和为 K 的子数组【中等】子数组是数组中元素的连续非空序列。leetcode刷题笔记【7】类型:前缀和|哈希表。
2024-06-30 18:46:18
392
原创 leetcode刷题笔记【6】
例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1”。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。输入:nums = [1,1,1,1,1], target = 3。给你一个非负整数数组 nums 和一个整数 target。输入:nums = [1], target = 1。解释:一共有 5 种方法让最终目标和为 3。leetcode刷题笔记【6】494. 目标和【中等】
2024-06-30 18:26:34
114
原创 leetcode刷题笔记【5】
439. 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。起始索引等于 6 的子串是 “bac”, 它是 “abc” 的异位词。起始索引等于 0 的子串是 “ab”, 它是 “ab” 的异位词。起始索引等于 1 的子串是 “ba”, 它是 “ab” 的异位词。起始索引等于 2 的子串是 “ab”, 它是 “ab” 的异位词。输入: s = “abab”, p = “ab”
2024-06-29 23:02:08
145
原创 leetcode刷题笔记【4】
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输入:height = [4,2,0,3,2,5]leetcode刷题笔记【4】42. 接雨水【困难】分类:双指针|单调栈。
2024-06-29 22:19:46
196
原创 leetcode刷题笔记【3】
给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。输入:[1,8,6,2,5,4,8,3,7]输入:height = [1,1]返回容器可以储存的最大水量。11. 盛最多水的容器。说明:你不能倾斜容器。
2024-06-29 22:16:05
172
原创 leetcode刷题笔记【2】
从原矩阵中选出若干行构成一个行的 非空 子集,如果子集中任何一列的和至多为子集大小的一半,那么我们称这个子集是 好子集。更正式的,如果选出来的行子集大小(即行的数量)为 k,那么每一列的和至多为 floor(k / 2)。一个矩阵 grid 的行 子集 ,是删除 grid 中某些(也可能不删除)行后,剩余行构成的元素集合。输入:grid = [[0,1,1,0],[0,0,0,1],[1,1,1,1]]输入:grid = [[1,1,1],[1,1,1]]解释:我们可以选择第 0 行构成一个好子集。
2024-06-25 20:20:17
300
原创 leetcode刷题笔记【1】
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。解释:最长数字连续序列是 [1, 2, 3, 4]。输入:nums = [0,3,7,2,5,8,4,6,0,1]请你设计并实现时间复杂度为 O(n) 的算法解决此问题。输入:nums = [100,4,200,1,3,2]leetcode刷题笔记。128. 最长连续序列。
2024-06-24 20:50:14
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人