首页 > 其他分享 >代码随想录day 56 || 图论6

代码随想录day 56 || 图论6

时间:2024-09-10 11:24:48浏览次数:12  
标签:minVal int 56 随想录 day edge minDist 节点 minNode

Prim算法

应用场景是主要是找到一个无向连通图的最小生成树,即连接所有节点且权重总和最小的树
image

// prim三部曲
// 1, 找到距离当前最小树最近节点
// 2,节点入树
// 3,更新mindist


// 更新树
func updateMinDist(edges [][]int, node int) {
	for _, edge := range edges {
		if edge[0] == node && edge[2] < minDist[edge[1]]{ // 直连当前节点,并且距离更短
			minDist[edge[1]] = edge[2]
		}
	}
}

// 找到不在树中的最近节点
func GetMinNode() int {
	var minVal int = math.MaxInt
	var minNode int = -1 // 特殊标记一下,如果没有找到最近节点,说明树已经遍历完成
	for i, v := range minDist {
		if !used[i] && v < minVal {
			minVal = v
			minNode = i
		}
	}
	return minNode
}

Kruskal算法

image

标签:minVal,int,56,随想录,day,edge,minDist,节点,minNode
From: https://www.cnblogs.com/zhougongjin55/p/18406084

相关文章

  • 代码随想录训练营第28天|利润分解
    122.买卖股票的最佳时机IIclassSolution{public:intmaxProfit(vector<int>&prices){intsum=0,day_profit;for(inti=1;i<prices.size();i++){day_profit=prices[i]-prices[i-1];if(day_profit>0)......
  • javascript-day02
    02-BOM-01-window的对话框<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Docu......
  • 数组与贪心算法——179、56、57、228(2简2中)
    179.最大数(简单)给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。解法一、自定义比较器大的排前面然后进行一个比较jpg一开始想的其实是字典序,但是测试里就败了。例如3,3......
  • 2563. 统计公平数对的数目
    题目链接2563.统计公平数对的数目思路排序+二分(upper_bound-lower_bound)题解链接两种方法:二分查找/三指针(Python/Java/C++/Go)关键点排序并不影响答案(数对数量未变化)时间复杂度\(O(n\logn)\)空间复杂度\(O(1)\)代码实现:classSolution:d......
  • day04(网络编程基础)tcp编程
    目录tcp编程流程服务器客户端函数接口socketbindlistenaccept​​​​​​​recv​​​​​​​connect​​​​​​​send初始版服务器客户端 加功能:1.客户端连接成功后进入循环发送状态,从终端获取用户输入并发送,当用户输入“quit”字符后退出循环并关闭客......
  • Day11 二叉树 part01| LeetCode
    理论基础二叉树的种类满二叉树完全二叉树二叉搜索树平衡二叉搜索树存储方式:数组、链式二叉树的遍历方式深度优先遍历前序(递归法、迭代法)中序(递归法、迭代法)后序(递归法、迭代法)广度优先遍历层序(迭代法)二叉树的定义publicclassTreeNode{......
  • 练习 day2
    name=input('输入姓名')ifname=='kk':print('hellokk')ifname=='k':print('hik')name=input('输入姓名')ifname=='kk':print('hellokk')else:print('fxxk')gif......
  • mini-lsm通关笔记Week2Day1
    项目地址:https://github.com/skyzh/mini-lsm个人实现地址:https://gitee.com/cnyuyang/mini-lsmSummary在本章中,您将:要将测试用例复制到启动器代码中并运行它们,实现合并某些SST文件并生成新SST文件的compaction逻辑。实现逻辑以更新LSM状态并管理文件系统上的SST文件。......
  • 代码随想录day 10-栈和队列2
    题目1150.逆波兰表达式求值给你一个字符串数组tokens,表示一个根据逆波兰表示法表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。注意:有效的算符为'+'、'-'、'*'和'/'。每个操作数(运算对象)都可以是一个整数或者另一个表达式。两个整数之间的除......
  • 题解:P5618 [SDOI2015] 道路修建
    题意给定一个\(2\timesN\)的网格,网格上的点和上下左右连边。要求支持以下几种操作:修改某条边的边权。求满足\(y\in[l,r]\)的点构成的点集的最小生成树。分析这道题的想法和P4246[SHOI2008]堵塞的交通很相似。注意到\(N,M\leq6\times10^4\),并且查询的是......