并查集的原理和应用 发表于 2024-09-23 更新于 2024-12-20 分类于 数组 本文字数: 1.9k 阅读时长 ≈ 3 分钟 1. 结构实现并查集要实现三个方法: int find(int x); 查找代表元素 bool isSameSet(int x, int y); 查看是否为同一集合 void _union(int x, int y); 合并集合 而并查集的结构,我们可以使用数组(顺序表)进行存储。数组下标i表示每个节点,数组的值father[i]对应着这个节点的代表节点。 ... 阅读全文 »
图的最短路径—BFS和Dijkstra算法 发表于 2024-09-23 更新于 2024-10-11 分类于 图论 本文字数: 3.6k 阅读时长 ≈ 7 分钟 BFS使用场景针对无权图,给定一个起始点,要求其他点到起始点的最短路径,可以使用BFS(广度优先搜索)算法得出结果。 代码实现和原理分析给出下面一个图,假设起始点为3 使用distance数组和visited数组分别记录每个点的最短路径和该点是否被访问过。 如需记录最短路径,则需要path数组 123vector<int> distance(n+... 阅读全文 »
预算内的最多机器人数目——二分答案和单调队列 发表于 2024-09-14 更新于 2024-10-11 分类于 数组 本文字数: 3.8k 阅读时长 ≈ 7 分钟 题目描述2398. 预算内的最多机器人数目 你有 n 个机器人,给你两个下标从 0 开始的整数数组 chargeTimes 和 runningCosts ,两者长度都为 n 。第 i 个机器人充电时间为 chargeTimes[i] 单位时间,花费 runningCosts[i] 单位时间运行。再给你一个整数 budget 。 运行 k 个机器人 总开销 是... 阅读全文 »
二分查找的一些思考 发表于 2024-09-11 更新于 2024-09-30 分类于 数组 本文字数: 2.1k 阅读时长 ≈ 4 分钟 二分查找的流程先来看一个问题: 力扣704 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 这题的暴力解很容易想到,就是依次遍历,直到找到target,否则则返回-1。这样做的时间复杂度为O(n) 暴力解忽略了题目中有序数组的... 阅读全文 »
git commit message 标准 发表于 2024-09-10 本文字数: 210 阅读时长 ≈ 1 分钟 基本格式type + 描述 type类型 feat 新功能 fix/to fix 产生diff并自动修复问题。适合一次提交直接修复格式 to 只产生diff不自动修复此问题。适合于多次提交。最终修复问题提交时使用fix docs 提交文档 style 格式 不影响代码运行的变动 refactor 重构 perf 优化 test 测试 单元测试 ch... 阅读全文 »