算法
文章平均质量分 91
算法
墨鸦_Cormorant
优快云 Java领域优质创作者,阿里云开发者社区专家博主。全网100W访问,合作微信。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法思想之广度优先搜索(BFS)及示例(亲子游戏)
广度优先搜索这种算法遍历整个图的所有节点并记录,直至找到所需结果为止,是一种盲目算法,但它还有一个非常重要的特性一最佳解,即当所有的边长相等,它就是最佳解,若在距离聚类算法中,应用广度优先搜索此特性去搜寻数据对象的同类,则可以有效地提高聚类速度。此外,可以把网格单元作为点来处理,利用广度优先搜索某网格的直接网格邻居单元邻居和间接网格邻居单元,以类似于树的层次迅速遍历整个网格空间,对符合条件的所有找到的邻居合并,从而将显著网格单元进行连通并聚类。然后根据层次遍历树的访问顺序,来给各支路和节点编号。原创 2025-06-09 09:10:25 · 10231 阅读 · 77 评论 -
算法思想之深度优先搜索(DFS)、递归以及案例(最多能得到多少克黄金、精准核酸检测、最富裕的小家庭)
例如:A 是确诊病例,A 和 B 有接触、B 和 C 有接触、C 和 D 有接触、D 和 E 有接触,那么 B、C、D、E 都是需要进行核酸检测的人。在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为一个小家庭。在题目中,提到横纵坐标的数位之和不大于k,意味着将横坐标和纵坐标的每个位上的数字相加,得到的和要小于或等于k。例如,对于数字1234,它的各个位上的数字分别是1、2、3和4,那么它的数位之和就等于1+2+3+4=10。原创 2025-05-06 11:06:26 · 12104 阅读 · 142 评论 -
算法思想之三叉搜索树
每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。给你一系列数,请按以上规则,按顺序将数插入树中,构建出一棵三叉搜索树,最后输出树的高度。第一行为一个数 N,表示有 N 个数,1 ≤ N ≤ 10000。第二行为 N 个空格分隔的整数,每个数的范围为[1,10000]输出树的高度(根节点的高度为1)原创 2025-04-21 09:33:11 · 10798 阅读 · 138 评论 -
算法思想之双指针
服务之间交换的接口成功率作为服务调用关键质量特性,某个时间段内的接口失败率使用一个数组表示,数组中每个元素都是单位时间内失败率数值,数组中的数值为 0 ~ 100 的整数,给定一个数值(minAverageLost)表示某个时间段内平均失败率容忍值,即平均失败率小于等于 minAverageLost,找出数组中最长时间段,如果未找到则直接返回。接下来的第 2 行到第 N + 1 行(共 N 行),每行为一个正整数,表示第 i 块披萨的大小,其中 1 ≤ i ≤ N。判定 S 是否是 L 的有效子串。原创 2025-04-07 16:15:07 · 11032 阅读 · 136 评论 -
算法思想之单调栈以及示例(转盘寿司、找朋友、火星文计算)
在学校中,N 个小朋友站成一队, 第 i 个小朋友的身高为 height[i],第 i 个小朋友可以看到的右边的第一个比自己身高更高的小朋友 j,那么 j 是 i 的好朋友(j > i)。如果客户选择了第 i 盘寿司,寿司店免费赠送客户距离第 i 盘寿司最近的下一盘寿司 j,前提是 prices[j] < prices[i],如果没有满足条件的 j,则不赠送寿司。这道题的解法利用了单调栈的特性,通过维护一个递减的栈,可以快速找到每个小朋友的好朋友位置。输出 N 个小朋友的好朋友的位置。原创 2025-03-25 14:29:24 · 11405 阅读 · 134 评论 -
时间复杂度与空间复杂度计算方法介绍
每次合并的复杂度是 O(n) ,递归深度是 O(log n) ,因此总时间复杂度为 O(n log n)说明:在这个例子中,内层循环的次数随外层循环的次数变化,第一次内层循环执行 n 次,第二次执行 n−1 次,以此类推,总时间复杂度为 O(n(n+1)/2) ,简化后依然为 O(n²)说明:这里声明了一个 n×n 的矩阵,因此空间复杂度为O(n²) ,因为存储该矩阵所需的空间随 n 的平方增长。说明:如果声明了一个长度为 n 的数组,那么空间复杂度是 O(n) ,因为数组的大小随 n 的增加而增加。原创 2025-01-01 18:15:59 · 10623 阅读 · 113 评论
分享