当前位置: 首页 > news >正文

力扣-图论-8【算法学习day.58】

前言

###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.引爆最多的炸弹

题目链接:2101. 引爆最多的炸弹 - 力扣(LeetCode)

题面:

分析:本质上还是求单向最大连通图,只不过连通的条件改成了能不能引爆 ,贴上灵神代码

代码:

class Solution {public int maximumDetonation(int[][] bombs) {int n = bombs.length;List<Integer>[] g = new ArrayList[n];Arrays.setAll(g, i -> new ArrayList<>());for (int i = 0; i < n; i++) {long x = bombs[i][0];long y = bombs[i][1];long r = bombs[i][2];for (int j = 0; j < n; j++) {long dx = x - bombs[j][0];long dy = y - bombs[j][1];if (j != i && dx * dx + dy * dy <= r * r) {g[i].add(j); // i 可以引爆 j}}}int ans = 0;boolean[] vis = new boolean[n];for (int i = 0; i < n && ans < n; i++) {Arrays.fill(vis, false);ans = Math.max(ans, dfs(g, vis, i));}return ans;}private int dfs(List<Integer>[] g, boolean[] vis, int x) {vis[x] = true;int cnt = 1;for (int y : g[x]) {if (!vis[y]) {cnt += dfs(g, vis, y);}}return cnt;}
}

后言

上面是力扣图论专题,下一篇是其他的习题,希望有所帮助,一同进步,共勉!

http://www.lryc.cn/news/501086.html

相关文章:

  • Spring 中的验证、数据绑定和类型转换
  • Github----提交人不是自己
  • 常用工具软件
  • Oracle报错ORA-01653: 表xx无法通过 8192在表空间中扩展
  • 【C语言】库函数常见的陷阱与缺陷(3):内存分配函数
  • Vue前端实现预览并打印PDF文档
  • CSS学习记录07
  • 喆塔科技携手国家级创新中心,共建高性能集成电路数智化未来
  • 基于单片机的汽车雨刷器装置
  • 013-SpringBoot 定义优雅的全局异常处理方式
  • nginx 网页正常访问 F5 404
  • Idea Spring Initializr没有 Java 8选项解决办法
  • 【Leetcode Top 100】104. 二叉树的最大深度
  • C#实现一个HttpClient集成通义千问-开发前准备
  • 使用ssh免密登录实现自动化部署rsync+nfs+lsync(脚本)
  • 若依集成更好用的easyexcel
  • 去除背景 学习笔记
  • 我们来学mysql -- 隔离级别简介(原理篇)
  • 机器学习(4)Kmeans算法
  • Oracle之表空间迁移
  • 域渗透入门靶机之HTB-Cicada
  • ue5 motion matching
  • 【从零开始的LeetCode-算法】383. 赎金信
  • 记录模板学习(持续更新)
  • Android hid 数据传输(device 端 )
  • MaxEnt模型在物种分布模拟中如何应用?R语言+MaxEnt模型融合物种分布模拟、参数优化方法、结果分析制图与论文写作
  • 第3章:文本样式 --[CSS零基础入门]
  • mysql 架构详解
  • 无代码探索AI大模型:腾讯云函数计算的卓越实践
  • 解决Ubuntu在VMware关机时,老是一个光标在那里闪动几分钟,才能关机的问题