- 博客(176)
- 收藏
- 关注
原创 【LeetCode 热题 100】153. 寻找旋转排序数组中的最小值——二分查找
这段代码旨在解决一个经典的二分查找变种问题:寻找旋转排序数组中的最小值 (Find Minimum in Rotated Sorted Array)。一个旋转排序数组是指一个原本升序排列且没有重复元素的数组,在某个未知的“枢轴”点进行了旋转(例如, 可能变为 )。该算法采用了一种非常高效的、经过特殊设计的 二分查找 策略来定位最小值。其核心思想是,通过比较中间元素 和数组的最后一个元素 ,来判断最小值所在的区间,从而不断缩小搜索范围。关键参照物:数组的最后一个元素二分查找的逻辑循环终止与结果这个算法 el
2025-07-31 00:15:00
453
原创 【LeetCode 热题 100】33. 搜索旋转排序数组——(解法二)一次二分
Problem:整数数组 nums 按升序排列,数组中的值 互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]。
2025-07-31 00:00:00
384
原创 【LeetCode 热题 100】33. 搜索旋转排序数组——(解法一)两次二分
Problem:整数数组 nums 按升序排列,数组中的值 互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]。
2025-07-30 00:15:00
612
原创 【LeetCode 热题 100】74. 搜索二维矩阵——(解法二)排除法
Problem:给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target ,如果 target 在矩阵中,返回 true;否则,返回 false。
2025-07-29 00:30:00
956
原创 【LeetCode 热题 100】74. 搜索二维矩阵——(解法一)二分查找
Problem:给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target ,如果 target 在矩阵中,返回 true;否则,返回 false。
2025-07-29 00:15:00
1527
原创 【LeetCode 热题 100】35. 搜索插入位置——二分查找(闭区间)
这段代码同样旨在解决 “搜索插入位置 (Search Insert Position)” 的问题。它也是基于二分查找(Binary Search),但采用了另一种常见的“左闭右闭”区间模板。这个模板的搜索逻辑和边界处理与“左闭右开”版本略有不同。算法的整体思路可以分解为以下步骤:定义搜索区间:循环搜索:确定最终结果:时空复杂度时间复杂度:O(log N)算法核心:该算法是二分查找。计算依据:与上一个版本类似, 循环的每一次迭代都会将搜索区间 的大小(即 )大约减半。这导致循环的迭代次数与
2025-07-29 00:00:00
609
原创 【LeetCode 热题 100】51. N 皇后——回溯
Problem:按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。
2025-07-28 00:00:00
955
原创 【LeetCode 热题 100】35. 搜索插入位置——二分查找(左闭右开)
这段代码旨在解决一个经典的搜索问题:搜索插入位置 (Search Insert Position)。问题要求在一个已排序的数组 中查找目标值 。如果找到,则返回其索引;如果未找到,则返回它应该被插入的位置的索引,以保持数组的有序性。该算法采用的核心方法是二分查找(Binary Search),这是一种在有序数据集中进行高效查找的算法。此特定实现方式是一种常见的“左闭右开”区间模板,其目标是找到第一个大于或等于 的元素的位置。算法的整体思路可以分解为以下步骤:定义搜索区间:循环搜索:确定最终结果:时空复
2025-07-28 00:00:00
915
原创 【LeetCode 热题 100】79. 单词搜索——回溯
Problem:给定一个 m x n 二维字符网格 board 和一个字符串单词 word。如果 word 存在于网格中,返回 true;否则,返回 false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
2025-07-27 00:00:00
1227
原创 【LeetCode 热题 100】131. 分割回文串——回溯
这段代码旨在解决一个经典的组合搜索问题:分割回文串 (Palindrome Partitioning)。其目标是找到一个字符串 的所有可能的分割方案,使得每个分割出的子串都是一个回文串。该算法采用 深度优先搜索(DFS) 配合 回溯(Backtracking) 的策略来系统地探索所有可能的分割点。这个特定实现的DFS逻辑稍显独特,但其核心思想是,在字符串的每个位置 ,决定是否在此处进行“切割”。DFS 状态定义:递归中的决策(二分选择):基准情况与结果收集:通过这种方式,算法不重不漏地枚举了所有可能的、由
2025-07-27 00:00:00
1160
原创 【LeetCode 热题 100】22. 括号生成——(解法二)记录左括号位置
Problem:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
2025-07-26 00:15:00
790
原创 【LeetCode 热题 100】22. 括号生成——(解法一)选左括号还是选有括号
Problem:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
2025-07-26 00:00:00
978
原创 【LeetCode 热题 100】39. 组合总和——(解法二)选哪个
Problem:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。
2025-07-25 00:15:00
869
原创 【LeetCode 热题 100】39. 组合总和——(解法一)选或不选
Problem:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。
2025-07-25 00:00:00
885
原创 【LeetCode 热题 100】17. 电话号码的字母组合——DFS+回溯
这段代码旨在解决一个经典的组合问题:电话号码的字母组合 (Letter Combinations of a Phone Number)。给定一个只包含数字 2-9 的字符串,它需要返回所有这些数字可能代表的字母组合。该算法采用的核心方法是 回溯法(Backtracking),通过 深度优先搜索(DFS) 来系统地探索所有可能的字母组合。算法的整体思路可以分解为以下步骤:映射关系与初始化:逐位构建组合:递归与回溯的核心逻辑:递归终止条件:通过这个“选择-探索-撤销”的循环,算法能够不重不漏地遍历所有可能的字母
2025-07-24 00:15:00
893
原创 【LeetCode 热题 100】78. 子集——(解法二)回溯+选哪个
Problem:题目:给你一个整数数组 nums ,数组中的元素 互不相同。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
2025-07-24 00:00:00
670
原创 【LeetCode 热题 100】78. 子集——(解法三)位运算
Problem:题目:给你一个整数数组 nums ,数组中的元素 互不相同。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
2025-07-24 00:00:00
896
原创 【LeetCode 热题 100】78. 子集——(解法一)回溯+选或不选
Problem:题目:给你一个整数数组 nums ,数组中的元素 互不相同。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
2025-07-23 00:15:00
2444
原创 【LeetCode 热题 100】46. 全排列——回溯
这段代码旨在解决一个经典的组合数学问题:全排列 (Permutations)。给定一个不含重复数字的数组 ,它需要找出其所有可能的全排列,并返回一个包含这些排列的列表。该算法采用的核心方法是 回溯法(Backtracking),这是一种通过 深度优先搜索(DFS) 来系统地探索所有可能解的搜索策略。算法的整体思路可以分解为以下步骤:逐位构建排列:状态维护:递归与回溯的核心逻辑:递归终止条件:通过这个“选择-探索-撤销”的循环,算法能够不重不漏地遍历所有可能的排列组合。时空复杂度时间复杂度:O(N * N
2025-07-23 00:00:00
559
原创 【LeetCode 热题 100】207. 课程表——DFS+三色标记
这段代码的目的是判断给定的课程和它们的先修课程要求是否能够构成一个可行的学习计划。这个问题在图论中等价于 检测一个有向图中是否存在环 (Cycle Detection in a Directed Graph)。如果存在环(例如,A->B->C->A),则意味着存在循环依赖,课程计划无法完成。该算法采用了经典的 深度优先搜索(DFS) 配合 三色标记法 来高效地检测环。构建图(邻接表):三色标记法:深度优先搜索 (DFS) 检测环:最终结果:时空复杂度时间复杂度:O(V + E)图的构建:构建邻接表需
2025-07-22 00:00:00
1418
原创 【LeetCode 热题 100】208. 实现 Trie (前缀树)
Trie树用空间换取了时间,它提供了与字典大小无关的、只与查询字符串长度相关的极快查询速度。参考灵神。
2025-07-22 00:00:00
968
原创 【LeetCode 热题 100】236. 二叉树的最近公共祖先——DFS
Problem:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。
2025-07-21 00:00:00
912
原创 【LeetCode 热题 100】124. 二叉树中的最大路径和——DFS
Problem:二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和。
2025-07-21 00:00:00
790
原创 【LeetCode 热题 100】200. 岛屿数量——DFS
Problem:给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。
2025-07-21 00:00:00
879
原创 【LeetCode 热题 100】437. 路径总和 III——(解法二)前缀和+哈希表
Problem:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
2025-07-20 00:15:00
523
原创 【LeetCode 热题 100】437. 路径总和 III——(解法一)递归递归!
Problem:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
2025-07-20 00:00:00
804
原创 【LeetCode 热题 100】199. 二叉树的右视图——(解法二)DFS
Problem:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
2025-07-19 00:15:00
965
原创 【LeetCode 热题 100】199. 二叉树的右视图——(解法一)BFS
Problem:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
2025-07-19 00:00:00
1590
原创 【LeetCode 热题 100】108. 将有序数组转换为二叉搜索树
Problem:给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。
2025-07-18 00:00:00
902
原创 【LeetCode 热题 100】230. 二叉搜索树中第 K 小的元素——中序遍历
Problem:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。
2025-07-18 00:00:00
784
原创 【LeetCode 热题 100】102. 二叉树的层序遍历——BFS
Problem:给你二叉树的根节点 root ,返回其节点值的 层序遍历。(即逐层地,从左到右访问所有节点)。
2025-07-17 00:15:00
1424
原创 【LeetCode 热题 100】543. 二叉树的直径——DFS
Problem:题目:给你一棵二叉树的根节点,返回该树的 直径。二叉树的 直径 是指树中任意两个节点之间最长路径的 长度。这条路径可能经过也可能不经过根节点 root。两节点之间路径的 长度 由它们之间边数表示。
2025-07-17 00:00:00
1890
原创 【LeetCode 热题 100】994. 腐烂的橘子——BFS
Problem:每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。
2025-07-16 10:18:26
973
原创 【LeetCode 热题 100】226. 翻转二叉树——DFS
Problem:题目:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
2025-07-16 00:00:00
926
原创 【LeetCode 热题 100】104. 二叉树的最大深度——DFS
Problem:题目:给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
2025-07-15 00:15:00
780
原创 【LeetCode 热题 100】94. 二叉树的中序遍历——DFS
Problem:题目:给定一个二叉树的根节点 root ,返回 它的 中序 遍历。
2025-07-15 00:00:00
825
原创 基于Yolov8车辆检测及图像处理系统【有代码】
车辆目标检测是计算机视觉领域的一个重要研究方向,其目标是从图像或视频序列中准确识别和定位车辆,为后续的车辆跟踪、行为分析和交通流量统计等任务提供基础。近年来,随着深度学习技术的发展,基于卷积神经网络(CNN)的目标检测方法取得了显著进展,如Faster R-CNN、SSD、YOLO等算法在车辆检测任务上展现出优越的性能。系统不仅能够实现对静态图像中车辆的准确检测,还提供了丰富的图像处理和分析功能,以及友好的用户界面,使得用户能够方便地进行车辆检测相关的研究和应用。点击车辆检测,效果如图13所示。
2025-07-14 08:55:31
1063
原创 【LeetCode 热题 100】23. 合并 K 个升序链表——(解法四)迭代式归并
Problem:题目:给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。
2025-07-14 00:45:00
2151
【计算机视觉】面向车辆目标检测的智慧图像识别系统:图像处理与特征提取操作指南
2025-07-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人