目录

  • 题目截图
  • 题目分析
  • ac code
  • 总结

题目截图

题目分析

    # 必须要有一个水井# 假设所有水井都从供水局0出发# 在x处造一口井,等价与连接0和x,cost=wells[x - 1], x >= 1# 寻找[0, n]的最小生成树即可

ac code

class UnionFind:def __init__(self, n):self.parent = list(range(n))self.cnt = ndef find(self, a):acopy = awhile a != self.parent[a]:a = self.parent[a]while acopy != a:self.parent[acopy], acopy = a, self.parent[acopy]return adef merge(self, a, b):if self.find(a) != self.find(b):self.parent[self.find(b)] = self.find(a)self.cnt -= 1return Truereturn Falseclass Solution:def minCostToSupplyWater(self, n: int, wells: List[int], pipes: List[List[int]]) -> int:# 必须要有一个水井# 假设所有水井都从供水局0出发# 在x处造一口井,等价与连接0和x,cost=wells[x - 1], x >= 1# 寻找[0, n]的最小生成树即可edges = pipes[:]for i, c in enumerate(wells, 1):edges.append([0, i, c])edges.sort(key = lambda it: it[2])uf = UnionFind(n + 1)min_cost = 0for x, y, c in edges:if uf.merge(x, y):min_cost += cif uf.cnt == 1:return min_cost

总结

  • 思维转换:本地造水井能不能拉成一条边?
  • 可以,拉成一条从供水局到x的一条边即可

leetcode:1168. 水资源分配优化【思维转换 + 最小生成树】相关推荐

  1. LeetCode题解(1168):水资源分配优化(Python)

    题目:原题链接(困难) 标签:图.Prim算法.Kruskal算法 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O ( N l o g N ) O(NlogN) O(Nlog ...

  2. 26个思维转换,实现跨越式成长

    <跨越式成长:思维转换重塑你的工作和生活>是超级畅销书<学习之道>作者芭芭拉·奥克利博士的新书,主要讲怎么通过"思维转换"重塑我们的工作和生活. 作者说,思 ...

  3. 【Linux 内核 内存管理】物理分配页 ⑦ ( __alloc_pages_slowpath 慢速路径调用函数源码分析 | 判断页阶数 | 读取 mems_allowed | 分配标志位转换 )

    文章目录 一.__alloc_pages_slowpath 慢速路径调用函数 二.判断页阶数 三.读取进程 mems_allowed 成员 四.分配标志位转换 五.__alloc_pages_slow ...

  4. 吐血整理的 Android 性能优化思维导图,让面试官眼前一亮

    引言 现如今 Android 开发行业的主要问题是因为初级的 Android 开发者太多了,导致初级开发的市场过于饱和,所以也就进一步导致初级和中级的开发者面临更大的竞争,因此想要脱离这种竞争现状,只 ...

  5. 【优化调度】基于matlab遗传算法求解农业水资源调度优化问题【含Matlab源码 1776期】

    ⛄一.农业水资源调度简介 水是生命之源,水是生产之要,水是生态之基. 目前,全球约有14亿人口缺乏安全清洁饮用水,据估测到2025年全球约有23亿人口将会面临水资源短缺问题.因此,水即将成为制约社会以 ...

  6. LeetCode 467. 环绕字符串中唯一的子字符串(思维转换)

    1. 题目 把字符串 s 看作是"abcdefghijklmnopqrstuvwxyz"的无限环绕字符串,所以 s 看起来是这样的:"-zabcdefghijklmnop ...

  7. 网站性能优化思维导图

    前言 下面是看了大神的笔记做的思维导图,纯为整理 参考网站 juejin.im/post/5b6fa8- www.cnblogs.com/xianyulaodi- 性能优化 雅虎35条军规

  8. 软件重构过程中的思维转换: 遗留代码如何变废为宝

    "我开始收到各式各样的邮件,人们都表示'天呐!我也是这样!'."她说,"我开始去传播这条信息,告诉大家重新建构遗留代码这件事其实非常有价值,凭此来吸引合适的人." ...

  9. LeetCode 三数之和 — 优化解法

    LeetCode 三数之和 - 改进解法 题目:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复 ...

最新文章

  1. 通俗讲解从Transformer到BERT模型!
  2. Jenkins入门总结
  3. IJ 自动生成构造方法
  4. Windows 2003 Server C盘空间被IIS日志文件消耗殆尽案例
  5. 功能测试——医疗管理系统
  6. 移动建模平台元数据存储架构演进
  7. 【 HDU - 1525 】Euclid's Game(较难找规律,玄学博弈,分析必败点必胜点)
  8. Spring框架 简述
  9. redis专题:redis的常用数据结构及使用场景
  10. docker server 容器连接sql_docker 容器连接 host的sql server失败
  11. 542. 01 矩阵
  12. java 歌词解析代码_网易云歌词爬取(java)
  13. 计算机图书管理系统测试用例,图书馆管理系统测试用例表
  14. c++将文件保存至txt文件的方法
  15. 关于营销自动化,30个惊人的事实
  16. 平凡的世界,因你而美
  17. 跳槽字节跳动,从新手到Flutter架构师,一篇就够!深度好文
  18. TcaplusDB君 · 行业新闻汇编(12月20号)
  19. 内存延时cl_简单解析,什么是“CL延迟”
  20. PHP连接redis并执行redis相关命令的方法详解

热门文章

  1. css---光标样式
  2. 手机c语言多文件编程,C语言多文件编程
  3. UE4蓝图案例:媒体播放器的开关1
  4. HTTP中的content-type的几种取值分析
  5. A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior——基于颜色衰减先验单图片去雾算法原理...
  6. Jave-Date(DateUtil)
  7. larvel 5.7命令行cmd常用命令
  8. 《画解数据结构》「基数排序」算法教程
  9. Linux schedule 4、负载均衡
  10. 赠书 | 十年运维经验总结出的智能运维系统落地方案,不得不赞