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

力扣-图论-2【算法学习day.52】

前言

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


习题

1.所有可能的路径

题目链接:797. 所有可能的路径 - 力扣(LeetCode)

题面:

分析:简单的dfs

代码:

class Solution {List<List<Integer>> ans = new ArrayList<>();int n;int[][] graph;public List<List<Integer>> allPathsSourceTarget(int[][] graph) {List<Integer> list  = new ArrayList<>();n = graph.length;this.graph = graph;int[] flag = new int[n];list.add(0);recursion(list,0,flag);return ans;}public void recursion(List<Integer> list,int x,int[] flag){//  System.out.println(x);if(x==(n-1)){// System.out.println(1);ans.add(new ArrayList<>(list));}int[] arr = graph[x];int m = arr.length;for(int i = 0;i<m;i++){if(flag[arr[i]]==0){list.add(arr[i]);flag[arr[i]] = 1;recursion(list,arr[i],flag);flag[arr[i]] = 0;list.remove(list.size()-1);}} }
}

2.钥匙和房间

题目链接:841. 钥匙和房间 - 力扣(LeetCode)

 题面:

代码:

class Solution {int n;int[] have;int count;int[] flag;List<List<Integer>> rooms;public boolean canVisitAllRooms(List<List<Integer>> rooms) {this.rooms = rooms;n = rooms.size();List<Integer> list = rooms.get(0);have = new int[n];flag = new int[n];flag[0] = 1;count = n-1;have[0] = 1;for(int a:list){if(have[a]==0)count--;have[a] = 1;}recursion(have);System.out.println(count);return count==0?true:false;}public void recursion(int[] have){int blog = 0;for(int i = 0;i<n;i++){if(have[i]==1&&flag[i]==0){flag[i] = 1;List<Integer> list = rooms.get(i);for(int a:list){if(have[a]==0)count--;have[a] = 1;}blog = 1;}}if(blog==1)recursion(have);}
}

后言

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

相关文章:

力扣-图论-2【算法学习day.52】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非…...

MySQL如何区分幻读和不可重复读

在MySQL中&#xff0c;幻读和不可重复读都是并发事务中可能出现的问题&#xff0c;但它们的表现和原因略有不同。 不可重复读 (Non-Repeatable Read) 不可重复读是指在同一个事务内&#xff0c;多次读取同一行数据时&#xff0c;可能会得到不同的结果。这种情况发生在一个事务…...

界面控件Syncfusion Essential Studio®现在已完全支持 .NET 9

Syncfusion Essential Studio现在完全支持 .NET 9&#xff0c;可最新版本2024 Volume 3 版本中使用&#xff01;通过此更新&#xff0c;Blazor、.NET MAUI、WPF、WinForms、WinUI和ASP.NET Core 平台中的 Syncfusion 组件以及文档处理库已准备好让您利用 .NET 9 中的最新功能。…...

openEuler安装lsb_release

lsb_release是linux下查看发行版信息用的工具 lsb_release只是一个小程序&#xff0c;它的包名并不是lsb_release lsb_release其实是红帽的一个项目&#xff0c;其名为redhat-lsb 我们的lsb_release就是其中的一部分&#xff0c;更准确的说是redhat-lsb-core 从网站&#xff1…...

统计数字字符个数

统计数字字符个数 C语言实现C实现Java实现Python实现 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 输入一行字符&#xff0c;统计出其中数字字符的个数。 输入 一行字符串&#xff0c;总长度不超过255。 输出 出为1行&#xff0c;输出…...

44页PDF | 信息化战略规划标准框架方法论与实施方法(限免下载)

一、前言 这份报告详细介绍了企业信息化战略规划的标准框架、方法论以及实施方法&#xff0c;强调了信息化规划应以业务战略和IT战略为驱动力&#xff0c;通过构筑企业架构&#xff08;EA&#xff09;来连接长期战略和信息化建设。报告提出了信息化规划原则&#xff0c;探讨了…...

计算机网络期末复习-part1-概述

1、互联网的组成 互联网由两大块组成。 1、边沿部分&#xff1a;由所有连接在互联网上的主机组成&#xff0c;是用户直接使用的部分。 2、核心部分&#xff0c;由大量网络和路由器组成&#xff0c;为边缘部分提供服务。 2、数据传送阶段的三种交换方式的主要特点 1、电路交…...

A1228 php+Mysql旅游供需平台的设计与实现 导游接单 旅游订单 旅游分享网站 thinkphp框架 源码 配置 文档 全套资料

旅游供需平台 1.项目描述2. 开发背景与意义3.项目功能4.界面展示5.源码获取 1.项目描述 随着社会经济的快速发展&#xff0c;生活水平的提高&#xff0c;人们对旅游的需求日益增强&#xff0c;因此&#xff0c;为给用户提供一个便利的查看导游信息&#xff0c;进行导游招募的平…...

RabbitMQ消息可靠性保证机制5--消息幂等性处理

RabbitMQ层面有实现“去重机制”来保证“恰好一次”吗&#xff1f;答案是没并没有&#xff0c;而且现在主流的消息中间件都没有实现。 一般解决重复消息的办法是&#xff1a;在消费端让我们消费消息操作具有幂等性。 幂等性问题并不是消息系统独有&#xff0c;而是&#xff0…...

Claude3.5如何使用?

Claude 3.5 Sonnet&#xff0c;性能直接吊打了 GPT-4o&#xff0c;甚至价格还更便宜。网友们纷纷展开实测&#xff0c;有人表示自己一半的工作已经可以由它替代了&#xff01;而最让人惊喜的新功能&#xff0c;莫过于 Artifacts 了。 就在昨天&#xff0c;Anthropic 深夜发布了…...

力扣刷题TOP101:14.BM16 删除有序链表中重复的元素-II

目录&#xff1a; 目的 思路 复杂度 记忆秘诀 python代码 目的 1→1→2→3→3 删除重复后变成2。 思路 这个任务是删除链表里重复的节点包含本身。可以看成是一个抽奖活动的系统升级。某人通过多种方式报名&#xff08;节点不同&#xff09;&#xff0c;后台数据检测到这些…...

解决github网络慢的问题

前言 本文采用替换host的方式来加速github的git请求&#xff0c;主要我自己用来备份的懒人方式&#xff0c;不然每次都要手动修改hosts文件&#xff0c;skrskrskr… 一、获取到可用的ip 先到这个网站查询到低延迟的ip 站长工具&#xff1a;https://ping.chinaz.com/ 第2步&…...

docker及docker exec命令学习笔记

docker exec 是一个常用的 Docker 命令&#xff0c;允许你在已经运行的容器中执行命令或启动新的进程。以下是详细介绍和常见用法&#xff1a; 基本语法 docker exec [OPTIONS] CONTAINER COMMAND [ARG...]参数详解 1. CONTAINER指定目标容器的名字或容器 ID。可以通过以下命…...

linux环境宝塔服务部署安装及介绍

一、简介 宝塔面板是一款服务器管理软件&#xff0c;支持windows和linux系统&#xff0c;可以通过Web端轻松管理服务器&#xff0c;提升运维效率。例如&#xff1a;创建管理网站、FTP、数据库&#xff0c;拥有可视化文件管理器&#xff0c;可视化软件管理器&#xff0c;可视化C…...

充分统计量(Sufficient Statistic)概念与应用: 中英双语

充分统计量&#xff1a;概念与应用 在统计学中&#xff0c;充分统计量&#xff08;Sufficient Statistic&#xff09; 是一个核心概念。它是从样本中计算得出的函数&#xff0c;能够完整且无损地表征样本中与分布参数相关的信息。在参数估计中&#xff0c;充分统计量能够帮助我…...

基于Matlab计算机视觉的车道线识别与前车检测系统研究

随着自动驾驶技术的发展&#xff0c;车道线识别和前车检测成为智能驾驶系统中的核心技术之一。本实训报告围绕基于计算机视觉的车道线识别与前车检测系统展开&#xff0c;旨在通过处理交通视频数据&#xff0c;实时检测车辆所在车道及其与前车的相对位置&#xff0c;从而为车道…...

模糊测试中常见的10种变异mutation策略

1. 引入 基于变异策略的模糊测试&#xff0c;有两个重点&#xff1a; &#xff08;1&#xff09;seed&#xff1a;种子&#xff0c;初始的合法输入序列。 &#xff08;2&#xff09;mutation&#xff1a;对已经存在的输入序列&#xff0c;进行微调。 所以&#xff0c;mutatio…...

opencv-android编译遇到的相关问题处理

1、opencv-android sdk下载 下载地址&#xff1a;https://opencv.org/releases/ 下载安卓SDK即可 2、解压下载好的SDK 3、导入opencv的SDK到安卓项目中 导入步骤在/OpenCV-android-sdk/sdk/build.gradle文件的注释中写的非常详细&#xff0c;大家可安装官方给出的步骤导入。…...

把 py脚本生成windows 可执行的文件

1 确保生成的exe文件&#xff0c;不会立即退出 input("Please input any key to exit!")2 安装 PyInstaller 确保已经安装了 PyInstaller。可以使用 pip 来安装它&#xff1a; pip install pyinstaller3 执行命令 这里的 --onefile 选项表示将所有依赖项打包到一…...

云计算的发展历史与未来展望

云计算的起源与发展 云计算的概念最早可以追溯到20世纪60年代&#xff0c;当时的计算机科学家约翰麦卡锡&#xff08;John McCarthy&#xff09;提出了“按需提供计算能力”的构想。尽管这一理念在当时的技术条件下无法实现&#xff0c;但为云计算的未来发展奠定了理论基础。 …...

Lean开发环境终极解决方案:3步完成版本管理工具配置

Lean开发环境终极解决方案&#xff1a;3步完成版本管理工具配置 【免费下载链接】elan The Lean version manager 项目地址: https://gitcode.com/gh_mirrors/el/elan elan是专为Lean定理证明器设计的智能版本管理工具&#xff0c;能够自动处理Lean和lake二进制文件的安…...

Soundcore Liberty 5 Pro系列耳塞:价格升级功能多样,通话降噪表现超出色!

产品线内差异&#xff1a;耳塞相同&#xff0c;充电盒不同此前&#xff0c;Soundcore价格最高的耳塞&#xff08;不包括睡眠耳塞&#xff09;是售价150美元的Liberty 4 Pro&#xff0c;但Liberty 5 Pro售价170美元&#xff0c;Liberty 5 Pro Max售价230美元&#xff0c;这已经进…...

【Qt学习】基本类型、日志输出、字符串、QVariant

文章目录基本数据类型日志输出Qt Creator中看日志单独控制台看日志字符串类型示例字符串拼接字符串长度QVariant示例变量相加自定义类型前文回顾&#xff1a; 【Qt学习】Windows上环境配置与项目初识 【Qt学习】三个窗口类、坐标系、内存回收 基本数据类型 Qt基本数据类型定义…...

使用TaotokenCLI工具一键配置开发环境与模型密钥

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Taotoken CLI工具一键配置开发环境与模型密钥 在接入大模型进行开发时&#xff0c;手动配置API密钥、Base URL和模型ID是常见的…...

驱动教学模式革新:广凌智慧教学融合平台如何实现个性化教学?

随着高等教育从“知识为主”向“能力为先”深刻转型&#xff0c;千人千面的个性化学习已成为未来教育的核心诉求。传统的统一内容、统一路径的教学模式&#xff0c;已难以满足学生差异化的发展需要。如何借助技术手段实现真正的因材施教&#xff1f;广凌智慧教学融合平台以人工…...

老旧小区门禁改造:业主权益与合规指引

一、费用来源与使用规范小区门禁改造并非全部由业主自费承担&#xff0c;可按合规渠道统筹资金&#xff0c;优先使用公共补贴与专项维修资金。资金使用优先级&#xff1a;政府老旧小区改造财政补贴&#xff1e;住宅专项维修资金&#xff1e;业主自筹财政补贴&#xff1a;老旧小…...

Android Method Tracing深度解析:Unity性能瓶颈跨层归因实战

1. 为什么Method Tracing不是“点一下就出报告”的银弹&#xff0c;而是Android性能诊断的听诊器在Unity项目上线前的最后两周&#xff0c;我接手了一个卡顿严重的AR应用——启动后3秒内帧率从60掉到22&#xff0c;用户滑动模型时UI直接冻结。团队里有人立刻打开Profiler&#…...

Google三星AI眼镜来了,开发者该关注什么

AI 眼镜又回来了&#xff0c;但这次不只是换个硬件外壳AI 眼镜这个话题&#xff0c;最近又被推到了台前。Google 在 I/O 2026 展示了基于 Android XR 的智能眼镜方向&#xff0c;并把三星、Gentle Monster、Warby Parker 等合作方一起摆上台面。按照目前公布的信息&#xff0c;…...

Vue3项目里SignalR怎么用?一个聊天室Demo带你从配置到上线(.NET 6 + Vue 3)

Vue3与SignalR实战&#xff1a;构建高互动聊天室的全栈指南 引言 在当今追求实时交互体验的Web应用中&#xff0c;传统的HTTP请求-响应模式已无法满足即时通讯、实时通知等场景需求。SignalR作为ASP.NET Core生态中的实时通信库&#xff0c;通过自动选择最佳传输协议&#xff0…...

基于Windows Defender遥测数据与机器学习预测恶意软件感染风险

1. 项目概述&#xff1a;当Windows Defender遇见机器学习在网络安全这个没有硝烟的战场上&#xff0c;恶意软件&#xff08;Malware&#xff09;始终是悬在个人用户和企业头顶的达摩克利斯之剑。从勒索软件加密关键文件&#xff0c;到间谍软件窃取商业机密&#xff0c;每一次成…...