- 博客(11)
- 收藏
- 关注
原创 算法学习——图论(五)
哈密尔顿图(Hamiltonian graph)是一个无向图,由天文学家哈密尔顿提出,由指定的起点前往指定的终点,途中经过所有其他节点且只经过一次。在图论中是指含有哈密尔顿回路的图,闭合的哈密尔顿路径称作哈密尔顿回路(Hamiltonian cycle),含有图中所有顶点的路径称作哈密顿路径(Hamiltonian path)。在此基础上,延伸出了旅行商问题,即给定一系列城市和每对城市之间的距离,求解访问每一座城市⼀次并回到起始城市的最短回路。
2024-07-28 09:15:56
635
原创 算法学习——图论(四)
时间复杂度:取决于启发式函数,最坏情况下,A* 退化成广搜,算法的时间复杂度是 O(n^2),n 为节点数量。实际上 A* 的时间复杂度是介于 最优和最坏情况之间,可以非常粗略的认为 A* 算法的时间复杂度是 O(nlogn),n 为节点数量。一般来说,SPFA 的时间复杂度为 O(K * N),其中 K 为不定值,因为节点需要进入几次队列取决于图的稠密度。空间复杂度:O(b^d) ,其中 d 为起点到终点的深度,b 是图中节点间的连接数量,本题因为是无权网格图,所以节点间连接数量为 4。
2024-07-21 16:20:18
730
原创 算法学习——图论(三)
时间复杂度:O(nlogn),其中 n 为节点个数,适用稀疏图(边数量较少)时间复杂度:O(n^2),其中 n 为节点个数,适用稠密图(边数量较多)判断图中有环的方法:最终如果结果集的节点数不等于总节点数,说明有环。等价于求起点和终点是否在同一个图中,即同一个根下。原题力扣685 力扣。模板代码冗长且是一摸一样的,略过。
2024-07-20 00:31:39
398
原创 算法学习——图论(二)
优化思路,分别从太平洋和大西洋逆流而上,只有两个大洋同时到达的地块才是要找的结果。这样的好处是不需要重复建立和修改 visited 数组,而是一次遍历,全程有效。优化了时间复杂度,为O(N*M)思路是对每一个点执行一次深搜,得到一个 visited 数组结果,再判断这个结果是否符合要求。思路:先遍历四周,把陆地改为2;再遍历一遍整图,把孤岛改为0,同时把2改回1。不需要回溯,因为不需要输出可行路径,只需要标记可达即可。主要思路为先遍历地图,记录每个岛屿各自的面积;时间复杂度 O(N^2*M^2),超时。
2024-07-18 22:00:24
458
原创 算法学习——图论(一)
如果想表示无向图,即:grid[2][5] = 6,grid[5][2] = 6,表示节点 2 与节点 5 相互连通,权值为 6。例如: grid[2][5] = 6,表示节点 2 连接节点 5 为有向图,节点 2 指向节点 5,边的权值为 6。后续 M 行,每行包含两个整数 s 和 t,表示图中的 s 节点与 t 节点中有一条路径。邻接矩阵是从节点的角度来表示图,有多少节点就申请多大的二维数组。第一行包含两个整数 N,M,表示图中拥有 N 个节点,M 条边。ACM模式输入邻接矩阵(对应。
2024-07-17 17:37:22
672
原创 算法学习——二分
1、理解“左闭右闭”、“左闭右开”左闭右闭:如区间 [left,right] ,则左右端点都属于可选的值左闭右开:如区间 [left,right) ,则右端点不可选2、所有的代码都根据预先设定的左闭右闭、左闭右开来写。
2024-05-30 13:41:40
119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人