自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 1353. 最多可以参加的会议数目

这是一个典型的区间调度问题(Interval Scheduling)变种。传统区间调度问题通常是给定固定的开始时间和结束时间,你只能参加非重叠的会议,目的是选择最多数量的互不重叠区间。因此,本题的难点在于如何合理安排参加会议的时间,才能让会议数量最大化。:该方案在某些会议时间重叠的情况下无法灵活安排,可能无法达到最大数量。虽然第一个和第四个会议时间段重叠,但可以分配不同天参加,从而全部参加。请返回你可以参加的最大会议数目。,参加第 i 个会议。,表示第 i 个会议从第。全部参加,会议数量最大。

2025-06-13 03:30:00 268

原创 1352. 最后 K 个数的乘积

设计一个算法,该算法接受一个整数流,并能快速检索该流中最后k个整数的乘积。实现一个类:用一个空的流初始化对象。:将数字num添加到当前数字列表的最后面。:返回当前数字列表中,最后k个数字的乘积。你可以假设当前列表中始终至少包含k个数字。题目保证:任何时候,任一连续数字序列的乘积都不会溢出 32 位整数范围。利用前缀乘积数组实现快速乘积查询,是本题最优解法。零的存在是实现的关键点,必须重置前缀积保证正确性。该方案空间复杂度 O(n),时间复杂度均为 O(1)。

2025-06-13 03:15:00 332

原创 1348. 推文计数

本题核心在于如何在给定时间段内,按照频率拆分成多个区间,并统计区间内的事件数量。采用哈希表+有序时间戳列表+二分查找的组合,能够实现高效插入和查询。此外,保持时间戳列表有序是提升查询效率的关键。如果应用场景中插入量极大,可以考虑批量排序或更复杂的数据结构(线段树、树状数组等)来优化。

2025-06-13 03:00:00 517

原创 1347. 制造字母异位词的最小步骤数

这道题本质是让两个字符串字符频率一致的问题,通过统计频率差异来计算最小替换次数,时间效率高,代码实现简洁。

2025-06-13 02:45:00 908

原创 1344. 时钟指针的夹角

把时间转换为角度表示。计算两个角度之间的较小夹角。编写简洁、效率高的代码完成常见的时间角度计算问题。

2025-06-13 02:30:00 615

原创 1343. 大小为 K 且平均值大于等于阈值的子数组数目

该题主要考察滑动窗口技巧的应用。滑动窗口能够优化求连续子数组和的效率,从而使时间复杂度从 O(n*k) 降至 O(n)。通过维护窗口和,快速判断每个长度为 k 的子数组是否满足条件。代码简洁,效率高,适合处理大规模数组。

2025-06-13 02:15:00 475

原创 1341. 电影评分

通过SQL和Pandas都能有效解决用户和电影的统计排序问题。SQL方案更适合处理大数据量和复杂查询,Pandas更灵活适合数据探索。题目中对字典序的要求,需要用字符串最小值函数(MIN()或min())来实现。代码中注意避免数据库关键字冲突,例如别名key改为label或type。

2025-06-13 02:00:00 1074

原创 1339. 分裂二叉树的最大乘积

本题是一道非常经典的树分割问题,其关键在于理解 “删除一条边 = 分割一颗子树”。本题考察了对树结构的递归操作能力,以及对问题建模的能力。核心公式技巧亮点:通过两次遍历(计算总和 + 寻找最大乘积)高效求解注意边界:必须是非空子树分割,不能全拿走或全留。

2025-06-13 01:45:00 303

原创 1338. 数组大小减半

优先删除出现频率最高的整数。用最少的元素达到最多的删除效果。频率排序后按需累加,直至总删除量达到一半。本题逻辑清晰,代码简洁,适合练习贪心策略 + 哈希统计 + 排序技巧。

2025-06-13 01:30:00 749

原创 1334. 阈值距离内邻居最少的城市

对于小规模问题,是“全能解法”;对于大规模稀疏图,建议采用Dijkstra + 优先队列优化性能;编程时注意细节:比如不要把自己计入“可达城市”,并正确处理“编号最大的优先”。

2025-06-13 01:15:00 432

原创 1333. 餐厅过滤器

多条件过滤;多关键字排序;列表推导技巧。

2025-06-13 01:00:00 621

原创 1329. 将矩阵按对角线排序

优点:这种方法利用对角线的起点定位,代码结构清晰,易于理解,且实现相对简单。在大多数实际情况下,性能表现也很好。其他方法:有些解法可能利用哈希表,将所有对角线的元素先收集起来(通过row - col作为键),再批量排序并写回。这也能达到相似效果,但逻辑稍复杂。适用范围:适用于需要对矩阵对角线进行操作(排序、聚合、统计等)的题目,思路通用。

2025-06-13 00:45:00 270

原创 1328. 破坏回文串

两个长度相同的字符串a和b,若在第一个不同的位置,字符串a的字符字典序比b小,则称a的字典序比b小。"abcc"字典序小于"abcd",因为第4个字符'c''d'。"aac"字典序小于"aba",因为第2个字符'a''b'。从左到右修改第一个非'a'的字符为'a'是保证字典序最小的关键。修改后字符串必然非回文,因为破坏了回文对称性。如果全'a',只能把最后一个字符改成'b',保持字典序尽可能小。长度为1的特殊情况需要单独处理。回文性质理解;字典序比较和字符串替换;边界条件的细致处理。

2025-06-13 00:30:00 286

原创 1325. 删除给定值的叶子节点

本题的关键在于理解删除叶子节点需要自底向上的操作,利用递归后序遍历天然满足这一需求。通过递归返回节点引用,可以在父节点中直接修改子节点指针,实现删除操作。

2025-06-13 00:15:00 141

原创 1324. 竖直打印单词

本题的核心是确定最长单词长度,然后按行遍历每个单词对应字符,补空格并去尾空格。用 Python 的字符串方法.rstrip()可以方便地处理尾部多余空格,满足题目要求。代码实现简洁,效率足够。这种竖直打印问题在面试和算法训练中较常见,掌握此类技巧对字符处理很有帮助。

2025-06-13 00:00:00 324

原创 1321. 餐馆营业额变化增长

本题关键是按日期汇总顾客消费数据,再基于汇总数据计算滑动窗口的营业额总和与均值。自连接是一种通用但可能较慢的方法,窗口函数是更现代高效的解决方案。通过示例演示了如何按滑动窗口计算营业额,便于餐厅老板观察每日营业额波动趋势,指导经营决策。

2025-06-12 03:30:00 510

原创 1319. 连通网络的操作次数

必要条件边的数量必须 >= n - 1,否则连通网络不可能。连通分量数量计算网络中有多少个独立的连通分量。比如有 4 台计算机,如果分成 2 个连通分量,则至少需要一次操作将它们合并。冗余边(多余边)已有的边数如果超过了保证当前连通分量所必需的最小边数,则多出来的边称为冗余边。冗余边可以用来“重新拔插”连接,从而连接不同的连通分量。操作次数需要将所有的连通分量合并成一个连通分量,所需的操作次数 = 连通分量数 - 1。

2025-06-12 03:15:00 730

原创 1315. 祖父节点值为偶数的节点和

这道题很典型地考察了对树结构的递归遍历及状态维护能力。通过传递父节点和祖父节点的信息,能简洁地实现条件判断,避免复杂的数据结构。你也可以用迭代(借助栈)实现类似功能,存储每个节点的父节点和祖父节点状态。该方法也可以扩展为查找满足任意“祖辈”节点条件的节点值和,或统计祖辈节点链上的其他性质。

2025-06-12 03:00:00 386

原创 1314. 矩阵区域和

二维前缀和矩阵prefix是一个大小为+ ...也就是说,是原矩阵左上角子矩阵(从(0,0)到(i-1, j-1))元素的和。这道「矩阵块和」题目适合用二维前缀和解决,能大幅度降低时间复杂度。关键点在于理解前缀和的定义和如何用它快速求解任意子矩阵的和。代码实现简洁,效率高,适用于大规模矩阵。该方法也常用在其他二维区间求和、统计类问题中,是算法中非常实用的技巧。

2025-06-12 02:45:00 210

原创 1311. 获取你好友已观看的视频

这道题通过 BFS 轻松找出距离为指定层级的好友,利用Counter统计视频频率,再按题目要求排序即可。核心点是图的层级遍历和排序逻辑。BFS 使用双端队列减少操作成本;视频数量大时,用堆结构做频率排序(不过本题中没必要)。

2025-06-12 02:30:00 203

原创 1310. 子数组异或查询

利用前缀异或数组,可以将每个区间异或查询从 O(n) 降低到 O(1)。前缀异或数组构建简单,逻辑清晰,广泛应用于异或相关区间查询问题。代码简洁且易于维护。

2025-06-12 02:15:00 665

原创 1306. 跳跃游戏 III

这道题是典型的图遍历问题,利用 BFS 或 DFS 对数组索引做搜索,判断是否能到达目标节点。BFS 更适合找最短路径或广泛搜索。DFS 代码简洁,适合递归实现。

2025-06-12 02:00:00 258

原创 1305. 两棵二叉搜索树中的所有元素

这道题充分利用了 BST 的中序遍历特性和归并排序的合并技巧,实现了时间和空间效率兼顾的优雅解法。

2025-06-12 01:45:00 308

原创 1302. 层数最深叶子节点的和

这道题主要考察你对树结构的理解,特别是层序遍历的掌握。通过 BFS 可以轻松解决层级相关问题,而 DFS 则提供了更灵活的递归思路。如果你正在准备算法面试,这道题是非常经典的一题,建议用两种方法都写一遍,加深对树的遍历方式的理解。

2025-06-12 01:30:00 152

原创 1300. 转变数组后最接近目标值的数组和

这道题本质上是一个优化问题 + 单调性搜索的问题。借助二分查找策略,我们可以在合理的时间内精确地找出最优解。

2025-06-12 01:15:00 315

原创 1297. 子串的最大出现次数

这题是一道典型的滑动窗口+哈希统计题目。核心在于动态维护窗口中不同字符数,以及高效统计子串频率。固定窗口长度为minSize是效率与效果的折中。实现时注意维护字符频率和不同字符数的更新。该思路也适用于类似统计满足字符条件的子串问题。

2025-06-12 01:00:00 318

原创 1296. 划分数组为连续数字的集合

通过贪心策略,从最小的数字开始,依次取长度为 k 的连续序列,判断每个数字是否有足够的数量支持这样的序列,若存在任何不足则返回false,反之返回true。该方法简单高效,且代码易于理解和实现。

2025-06-12 00:45:00 261

原创 1292. 元素和小于等于阈值的正方形的最大边长

通过本题,我们掌握了二维前缀和的构建和使用,以及结合二分查找优化搜索空间的思路。这种组合技巧在解决“最大满足某条件的子矩阵”问题时非常常见。如果题目改为找矩形而非正方形,是否还能用类似方法?(答案是可以,但二分需要调整)如果求的是子矩阵最大和且不超过阈值,也可结合滑动窗口等方法。该方法也适用于动态查询,利用线段树、树状数组进行扩展。

2025-06-12 00:30:00 81

原创 1291. 顺次数

本题的核心在于识别「顺次数」的数字规律,利用数字的连续性进行枚举,并结合区间限制筛选符合条件的数字。通过从数字长度和起始数字双层遍历,构造顺次数,再判断是否在给定区间内,最后返回排序好的结果,简单高效地解决了问题。

2025-06-12 00:15:00 378

原创 1288. 删除被覆盖区间

本题的难点在于如何快速判断区间覆盖关系,合理排序极大简化判断;按左端点升序,右端点降序排序后,遍历中维护最大右端点,线性判断覆盖即可;这种解法时间复杂度为O(n log n),是本题的主流解法。

2025-06-12 00:00:00 264

原创 1286. 字母组合迭代器

设计明确字典序的组合生成方式;选择合适的数据结构保存当前状态(索引数组);实现高效的下一个组合生成逻辑;兼顾时间和空间效率。

2025-06-11 03:30:00 658

原创 1283. 使结果不超过阈值的最小除数

本题核心是如何利用二分查找在一个单调函数的范围内快速定位最优解。数组中的最大值作为右边界,1作为左边界。通过判断“当前除数的求和结果是否满足阈值”,决定搜索方向。利用向上取整的技巧简化除法计算。这种「用二分查找找一个边界值」的思路在很多类似题目中都非常有用,掌握此技巧可以极大提升解决复杂问题的效率。

2025-06-11 03:15:00 265

原创 1282. 用户分组

这题用哈希表动态维护每个组大小对应的当前成员列表是关键,简单有效。哈希表的键是组大小,值是成员列表。每当组满时,将其添加到最终结果并清空对应列表。时间复杂度 O(n),空间复杂度 O(n)。

2025-06-11 03:00:00 358

原创 1277. 统计全为 1 的正方形子矩阵

我们定义一个二维数组dpdp[i][j]表示以位置(i, j)作为右下角的最大边长正方形的边长。本题是动态规划中的经典应用之一。通过对每个位置以其为正方形右下角的可能性建模,我们巧妙地避免了大量的重复计算,大幅提升效率。

2025-06-11 02:45:00 279

原创 1276. 不浪费原料的汉堡制作方案

这道题虽然是简单难度,但却非常具有启发性——算法题中很多问题都可以通过数学建模简洁高效地解决。掌握将现实问题转换为数学表达的能力,是提升刷题和面试实力的重要一环。我们从题目中提取数学方程构建模型解方程组判断解是否合理(非负整数)

2025-06-11 02:30:00 173

原创 1267. 统计参与通信的服务器

如何利用额外空间辅助统计;如何优化遍历策略;如何精确地根据题目条件进行逻辑判断。

2025-06-11 02:15:00 297

原创 1262. 可被三整除的最大和

动态规划法灵活且通用,适合本题和类似“分组求最大和”的题目,代码简洁易扩展。贪心法思路简单直观,但在处理较大输入时堆排序操作可能带来效率影响。两者皆能正确解决题目,用户可根据实际需求选择。

2025-06-11 02:00:00 237

原创 1261. 在受污染的二叉树中查找元素

题目本质是利用节点值计算规则还原树,并提供快速查询接口。通过 DFS 递归还原节点值,利用哈希集合存储节点值,实现高效查询。该题考察树的遍历、递归以及哈希查找的综合应用。

2025-06-11 01:45:00 316

原创 1254. 统计封闭岛屿的数目

DFS vs BFS:两者都适用于岛屿遍历,DFS实现简单,递归优雅;BFS通过队列实现,空间管理更灵活。原地修改 vs 额外空间:该方案直接修改输入矩阵,将访问过的陆地标记为水,节省空间。如果不能修改原矩阵,可以增加一个访问数组。边界处理:关键在于先把边界联通的岛屿“消灭”,这一步是本题的核心技巧。本篇文章详细讲解了如何计算二维矩阵中封闭岛屿的数量,给出了清晰的解题思路和代码实现,并通过示例说明和复杂度分析帮助理解。关键点是先排除边界连通的岛屿,再统计剩余岛屿数量。

2025-06-11 01:30:00 267

原创 1253. 重构 2 行二进制矩阵

先处理强制分配的列(colsum=2再根据剩余资源分配模糊的列(colsum=1通过贪心分配,保证每步不违反上下行容量限制。及时判断无解情况,避免无意义的计算。算法简单高效,适合在面试中考察贪心策略及边界条件处理能力。

2025-06-11 01:15:00 275

空空如也

空空如也

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

TA关注的人

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