括号生成(回溯)
摘要:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 示例 2: 输入:n = 1 输出:["()"] class Soluti
阅读全文
posted @
2024-12-31 22:39
_月生
阅读(1)
推荐(0) 编辑
组合总和(回溯)
摘要:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被选取 。如果
阅读全文
posted @
2024-12-31 21:21
_月生
阅读(1)
推荐(0) 编辑
电话号码的字母组合(回溯)
摘要:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits = "23" 输出:["ad","ae","af","bd","be","bf","cd","ce"
阅读全文
posted @
2024-12-31 20:26
_月生
阅读(3)
推荐(0) 编辑
子集(回溯)
摘要:给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] 示例 2
阅读全文
posted @
2024-12-30 16:27
_月生
阅读(2)
推荐(0) 编辑
全排列(回溯)
摘要:给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入:nums = [0,1] 输
阅读全文
posted @
2024-12-30 14:34
_月生
阅读(4)
推荐(0) 编辑
实现 Trie (前缀树)(字典树)
摘要:Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀树对象。 void insert(String word) 向前缀树中插入字符串 w
阅读全文
posted @
2024-12-29 15:10
_月生
阅读(38)
推荐(0) 编辑
课程表(深度优先遍历/拓扑排序)
摘要:你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 b
阅读全文
posted @
2024-12-29 14:56
_月生
阅读(13)
推荐(0) 编辑
腐烂的橘子(广度优先遍历)
摘要:在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1 。
阅读全文
posted @
2024-12-29 14:00
_月生
阅读(7)
推荐(0) 编辑
岛屿数量(深度优先遍历)
摘要:给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 输入:grid = [ ["1","1","1","1","0"], ["
阅读全文
posted @
2024-12-29 12:15
_月生
阅读(6)
推荐(0) 编辑
二叉树中的最大路径和(递归)
摘要:二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回其 最大路径和 。 示例 1: 输入:root = [1
阅读全文
posted @
2024-12-29 11:26
_月生
阅读(9)
推荐(0) 编辑
二叉树的最近公共祖先(递归)
摘要:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例 1: 输入:root = [3,5,1,6,2
阅读全文
posted @
2024-12-25 16:51
_月生
阅读(9)
推荐(0) 编辑
路径总和 III(递归)
摘要:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 示例 1: 输入:root = [10,5,-3,3,2,n
阅读全文
posted @
2024-12-25 16:40
_月生
阅读(8)
推荐(0) 编辑
从前序与中序遍历序列构造二叉树(递归)
摘要:给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7] 输出:
阅读全文
posted @
2024-12-25 11:07
_月生
阅读(25)
推荐(0) 编辑
二叉树展开为链表(先序遍历)
摘要:给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1: 输入:root = [1,2,5,3,4,null,
阅读全文
posted @
2024-12-25 10:44
_月生
阅读(11)
推荐(0) 编辑
二叉树的右视图(层次遍历)
摘要:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入:root = [1,2,3,null,5,null,4] 输出:[1,3,4] 解释: 示例 2: 输入:root = [1,2,3,4,null,null,null,5
阅读全文
posted @
2024-12-25 10:06
_月生
阅读(2)
推荐(0) 编辑
二叉搜索树中第 K 小的元素(中序遍历)
摘要:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。 示例 1: 输入:root = [3,1,4,null,2], k = 1 输出:1 示例 2: 输入:root = [5,3,6,2,4,null,null,1], k = 3
阅读全文
posted @
2024-12-24 18:56
_月生
阅读(11)
推荐(0) 编辑
验证二叉搜索树(递归/中序遍历)
摘要:给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入:root = [2,1,3] 输出:true 示例 2
阅读全文
posted @
2024-12-24 18:08
_月生
阅读(19)
推荐(0) 编辑
将有序数组转换为二叉搜索树(递归)
摘要:给你一个整数数组 nums ,其中元素已经按升序排列,请你将其转换为一棵平衡二叉搜索树。 示例 1: 输入:nums = [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案: 示例 2: 输入:num
阅读全文
posted @
2024-12-24 17:35
_月生
阅读(13)
推荐(0) 编辑
二叉树的层序遍历(队列)
摘要:给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入:root = [1] 输出:[[1]] 示例 3: 输入
阅读全文
posted @
2024-12-24 17:15
_月生
阅读(9)
推荐(0) 编辑
二叉树的直径(递归)
摘要:给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1: 输入:root = [1,2,3,4,5] 输出:3 解释:3 ,取路径 [4,2,1
阅读全文
posted @
2024-12-24 17:01
_月生
阅读(13)
推荐(0) 编辑
对称二叉树(递归)
摘要:给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root = [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root = [1,2,2,null,3,null,3] 输出:false /** * Definition for a binary tree
阅读全文
posted @
2024-12-23 20:31
_月生
阅读(3)
推荐(0) 编辑
翻转二叉树(递归)
摘要:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:root = [2,1,3] 输出:[2,3,1] 示例 3: 输入:root = [] 输出:[] /**
阅读全文
posted @
2024-12-23 20:13
_月生
阅读(2)
推荐(0) 编辑
二叉树的最大深度(递归)
摘要:给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root = [1,null,2] 输出:2 /** * Definitio
阅读全文
posted @
2024-12-23 19:12
_月生
阅读(12)
推荐(0) 编辑
二叉树的中序遍历(递归/栈)
摘要:给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 方法1:递归 /** * Definition fo
阅读全文
posted @
2024-12-23 19:03
_月生
阅读(11)
推荐(0) 编辑
LRU 缓存(哈希表+双向链表)
摘要:请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否
阅读全文
posted @
2024-12-23 18:36
_月生
阅读(19)
推荐(0) 编辑
合并 K 个升序链表(归并排序)
摘要:给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [ 1->4->5, 1->3->4, 2->6 ]
阅读全文
posted @
2024-12-23 18:00
_月生
阅读(10)
推荐(0) 编辑
排序链表(归并排序)
摘要:给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head = [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head = [-1,5,3,4,0] 输出:[-1,0,3,4,5] 示例 3: 输入:head = [] 输出:[] 方法一
阅读全文
posted @
2024-12-22 14:31
_月生
阅读(10)
推荐(0) 编辑
随机链表的复制(哈希表)
摘要:给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中
阅读全文
posted @
2024-12-22 13:51
_月生
阅读(9)
推荐(0) 编辑
K 个一组翻转链表(逆置链表+递归)
摘要:给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 示例 1: 输入:head = [1,2
阅读全文
posted @
2024-12-22 13:33
_月生
阅读(6)
推荐(0) 编辑
两两交换链表中的节点(迭代)
摘要:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即只能进行节点交换)。 示例 1: 输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例 2: 输入:head = [] 输出:[] 示例 3: 输入:head = [1]
阅读全文
posted @
2024-12-22 12:16
_月生
阅读(3)
推荐(0) 编辑
两数相加(迭代)
摘要:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 1: 输入:l1 = [2,4,3], l2 = [5,6,
阅读全文
posted @
2024-12-21 14:26
_月生
阅读(10)
推荐(0) 编辑
合并两个有序链表(迭代)
摘要:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输出:[] 示例 3: 输入:l1 = []
阅读全文
posted @
2024-12-21 12:46
_月生
阅读(14)
推荐(0) 编辑
环形链表 II(快慢指针)
摘要:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos
阅读全文
posted @
2024-12-21 12:01
_月生
阅读(3)
推荐(0) 编辑
环形链表(快慢指针)
摘要:给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的
阅读全文
posted @
2024-12-21 11:39
_月生
阅读(6)
推荐(0) 编辑
回文链表(栈)
摘要:给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head = [1,2,2,1] 输出:true 示例 2: 输入:head = [1,2] 输出:false 思路:使用栈来存储节点值,然后开始比对 /** *
阅读全文
posted @
2024-12-21 11:20
_月生
阅读(3)
推荐(0) 编辑
搜索二维矩阵 II(二分搜索)
摘要:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1: 输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10
阅读全文
posted @
2024-12-20 22:51
_月生
阅读(4)
推荐(0) 编辑
相交链表
摘要:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 /** * Definit
阅读全文
posted @
2024-12-20 22:47
_月生
阅读(7)
推荐(0) 编辑
旋转图像
摘要:给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[[7,4
阅读全文
posted @
2024-12-20 21:57
_月生
阅读(6)
推荐(0) 编辑
螺旋矩阵
摘要:给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[5,6,
阅读全文
posted @
2024-12-20 21:41
_月生
阅读(3)
推荐(0) 编辑
矩阵置零(标记数组)
摘要:给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix = [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 示例 2: 输入:matrix = [[
阅读全文
posted @
2024-12-20 20:48
_月生
阅读(9)
推荐(0) 编辑
缺失的第一个正数
摘要:给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums = [1,2,0] 输出:3 解释:范围 [1,2] 中的数字都在数组中。 示例 2: 输入:nums = [3,4,-1,
阅读全文
posted @
2024-12-19 16:44
_月生
阅读(4)
推荐(0) 编辑
除自身以外数组的乘积(前缀积+后缀积)
摘要:给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度内完成此题。
阅读全文
posted @
2024-12-19 11:02
_月生
阅读(4)
推荐(0) 编辑
轮转数组(逆转数组)
摘要:给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,
阅读全文
posted @
2024-12-19 10:43
_月生
阅读(2)
推荐(0) 编辑
合并区间(排序)
摘要:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: 输入:intervals = [[1,3],[2,6],[8,10]
阅读全文
posted @
2024-12-19 10:10
_月生
阅读(6)
推荐(0) 编辑
最大子数组和(动态规划)
摘要:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 示例 2
阅读全文
posted @
2024-12-19 09:41
_月生
阅读(14)
推荐(0) 编辑
最小覆盖子串(滑动窗口)
摘要:给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 如果 s 中存在这样的子串,我们保证它是唯一的答案。 示
阅读全文
posted @
2024-12-18 17:28
_月生
阅读(8)
推荐(0) 编辑
滑动窗口最大值(滑动窗口+优先队列)
摘要:给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 输出:[3,3,5,5,
阅读全文
posted @
2024-12-18 16:39
_月生
阅读(6)
推荐(0) 编辑
和为 K 的子数组(前缀和+哈希表)
摘要:给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums = [1,1,1], k = 2 输出:2 示例 2: 输入:nums = [1,2,3], k = 3 输出:2 思路:前缀和 + 哈
阅读全文
posted @
2024-12-18 16:16
_月生
阅读(6)
推荐(0) 编辑
找到字符串中所有字母异位词(滑动窗口)
摘要:给定两个字符串 s 和 p,找到 s 中所有 p 的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s = "cbaebabacd", p = "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。 起始索引等
阅读全文
posted @
2024-12-18 15:51
_月生
阅读(16)
推荐(0) 编辑
无重复字符的最长子串(滑动窗口)
摘要:给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所
阅读全文
posted @
2024-12-18 15:29
_月生
阅读(7)
推荐(0) 编辑
接雨水(单调递减栈)
摘要:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 示例 2: 输入:height = [4,2,0,3,2,5] 输出:9 思路:使用单调递减栈,当遍历
阅读全文
posted @
2024-12-17 18:25
_月生
阅读(5)
推荐(0) 编辑
三数之和(排序)
摘要:给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以
阅读全文
posted @
2024-12-17 17:41
_月生
阅读(7)
推荐(0) 编辑
盛最多水的容器(双指针)
摘要:给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 示例 1: 输入:[1,8,6,2,5,4,8,3,7]
阅读全文
posted @
2024-12-17 16:57
_月生
阅读(7)
推荐(0) 编辑
移动零(双指针)
摘要:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums = [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums = [0] 输出: [0
阅读全文
posted @
2024-12-17 16:40
_月生
阅读(9)
推荐(0) 编辑
最长连续序列(排序)
摘要:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为
阅读全文
posted @
2024-12-17 16:16
_月生
阅读(5)
推荐(0) 编辑
字母异位词分组(哈希表+排序)
摘要:给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["bat"],["nat"
阅读全文
posted @
2024-12-16 18:58
_月生
阅读(14)
推荐(0) 编辑