随笔分类 -  leetcode

上一页 1 2 3 4 5 6 7 ··· 12 下一页
摘要:整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., 阅读全文
posted @ 2023-10-01 15:55 xiazichengxi 阅读(11) 评论(0) 推荐(0) 编辑
摘要:给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 1: 输入:nums = [5,7, 阅读全文
posted @ 2023-10-01 14:53 xiazichengxi 阅读(3) 评论(0) 推荐(0) 编辑
摘要:给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非递减顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。 示例 1: 输入:matrix = [[1,3,5,7], 阅读全文
posted @ 2023-09-29 14:40 xiazichengxi 阅读(13) 评论(0) 推荐(0) 编辑
摘要:给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示 阅读全文
posted @ 2023-09-28 13:43 xiazichengxi 阅读(9) 评论(0) 推荐(0) 编辑
摘要:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 思路一:回溯 class Solution { public: vecto 阅读全文
posted @ 2023-09-27 11:48 xiazichengxi 阅读(15) 评论(0) 推荐(0) 编辑
摘要:Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀树对象。 void insert(String word) 向前缀树中插入字符串 w 阅读全文
posted @ 2023-09-25 15:23 xiazichengxi 阅读(5) 评论(0) 推荐(0) 编辑
摘要:你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 b 阅读全文
posted @ 2023-09-22 19:22 xiazichengxi 阅读(8) 评论(0) 推荐(0) 编辑
摘要:在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1 。 阅读全文
posted @ 2023-09-22 15:22 xiazichengxi 阅读(15) 评论(0) 推荐(0) 编辑
摘要:给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 输入:grid = [ ["1","1","1","1","0"], [" 阅读全文
posted @ 2023-09-21 14:36 xiazichengxi 阅读(10) 评论(0) 推荐(0) 编辑
摘要:二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回其 最大路径和 。 示例 1: 输入:root = [1 阅读全文
posted @ 2023-09-21 11:17 xiazichengxi 阅读(44) 评论(0) 推荐(0) 编辑
摘要:班级组织传球活动,男女同学随机排成m行n列队伍,第一列中的任意个男同学都可以作为传球的起点,要求最终将球传到最后一列的任意-个男同学手里,求所有能够完成任务的传球路线中的最优路线(传球次数最少的路线)的传球次数。 传球规则: 1.男同学只能将球传给男同学,不能传给女同学 2.球只能传给身边前后左右相 阅读全文
posted @ 2023-09-20 22:10 xiazichengxi 阅读(148) 评论(0) 推荐(0) 编辑
摘要:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 示例 1: 输入:root = [10,5,-3,3,2,n 阅读全文
posted @ 2023-09-20 14:24 xiazichengxi 阅读(12) 评论(0) 推荐(0) 编辑
摘要:给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1: 输入:root = [1,2,5,3,4,null, 阅读全文
posted @ 2023-09-19 14:29 xiazichengxi 阅读(8) 评论(0) 推荐(0) 编辑
摘要:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] > 代码 class Solution { public: vector<int> rightSid 阅读全文
posted @ 2023-09-19 14:06 xiazichengxi 阅读(5) 评论(0) 推荐(0) 编辑
摘要:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例 1: 输入:root = [3,1,4,null,2], k = 1 输出:1 > 代码 class Solution { public: vector<int> res 阅读全文
posted @ 2023-09-18 14:33 xiazichengxi 阅读(4) 评论(0) 推荐(0) 编辑
摘要:给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 输入:root = [1,2,3,4,5] 输出:3 解释:3 ,取路径 [4,2,1,3] 或 阅读全文
posted @ 2023-09-18 13:18 xiazichengxi 阅读(14) 评论(0) 推荐(0) 编辑
摘要:请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否 阅读全文
posted @ 2023-09-14 14:27 xiazichengxi 阅读(5) 评论(0) 推荐(0) 编辑
摘要:给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 输入: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 @ 2023-09-13 15:37 xiazichengxi 阅读(6) 评论(0) 推荐(0) 编辑
摘要:给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 输入:head = [4,2,1,3] 输出:[1,2,3,4] > 思路1: 采用二路归并排序,分为递归和迭代 两种方法。 递归采用快慢指针,找到链表的中点,断开,然后对两条链表进行二路归并 class Solution 阅读全文
posted @ 2023-09-12 15:06 xiazichengxi 阅读(6) 评论(0) 推荐(0) 编辑
摘要:给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中 阅读全文
posted @ 2023-09-11 17:14 xiazichengxi 阅读(8) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 12 下一页
点击右上角即可分享
微信分享提示
主题色彩