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

【力扣100】207.课程表

添加链接描述

class Solution:def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:# 思路是计算每一个课的入度,然后使用队列进行入度为0的元素的进出# 数组:下标是课程号,array[下标]是这个课程的入度# 哈希表:key是课程号,value是以这个课程号为先导课的课程列表!注意是列表!这里需要使用defaultdictmylist=[0]*numCoursesmydict=collections.defaultdict(list)for i in prerequisites:mylist[i[0]]+=1mydict[i[1]].append(i[0])# 现在初始化队列myque=collections.deque()for i in range(len(mylist)):if mylist[i]==0:myque.append(i)while myque:cur=myque.popleft()cur_list=mydict[cur]# numCourses-=1if cur_list:for follcourse in cur_list:mylist[follcourse]-=1if mylist[follcourse]==0:myque.append(follcourse)# 验证入度数组是不是都为0,如果不是0,则返回falsefor i in mylist:if i !=0:return Falsereturn True

思路:

  1. 题目分析:把先导课程和后续课程画图:
    在这里插入图片描述
  2. 看出来,后续课程都是入度不为0的节点
  3. 然后使用一个数组,记录每一门课的入度
  4. 使用一个字典defaultdict来保存一个课程的后续课程列表
  5. 初始化数组和while循环,使用bfs队列维护
  6. 当前出队列的元素需要把它的后续课程列表拿出来,并把里面每一个课程的入度减1,如果课程入度为0,就可以加入队列
  7. 最后判断数组中的元素入度是不是都为0,返回

collections.defaultdict的优势

它允许你在创建时指定一个默认值的类型,当你访问一个不存在的键时,它会使用这个默认值类型创建一个新的值,并将其返回。这意味着你不会因为访问不存在的键而引发 KeyError。

对于本题的 mydict=collections.defaultdict(list)
  • 这是使用普通dict,需要初始化:
# 创建一个普通的字典,值的类型是数组
dict_with_arrays = {}# 添加元素到字典中
dict_with_arrays['key1'] = []  # 这里使用空列表作为值的初始类型
dict_with_arrays['key1'].append(1)
dict_with_arrays['key1'].append(2)dict_with_arrays['key2'] = [3, 4, 5]  # 初始化值为一个具有初始元素的列表# 输出字典中的值
print(dict_with_arrays['key1'])  # 输出: [1, 2]
print(dict_with_arrays['key2'])  # 输出: [3, 4, 5]

相关文章:

【力扣100】207.课程表

添加链接描述 class Solution:def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:# 思路是计算每一个课的入度,然后使用队列进行入度为0的元素的进出# 数组:下标是课程号,array[下标]是这个课程的入度# 哈希…...

2024年生成式AI支出将翻倍,到2027年将超1500亿美元

据国际数据公司(IDC)的预测,2023年全球企业在生成式人工智能(GenAI)解决方案上的投资已达194亿美元,预计在2024年将翻番。该预测还指出,包括GenAI软件、相关硬件和服务在内的支出将在2027年达到1511亿美元,…...

【代码随想录】刷题笔记Day42

前言 这两天机器狗终于搞定了,一个控制ROS大佬,一个计院编程大佬,竟然真把创新点这个弄出来了,牛牛牛牛(菜鸡我只能负责在旁边喊加油)。下午翘了自辩课来刷题,这次应该是元旦前最后一刷了&…...

数据库云平台新数科技完成B轮融资,打造全链路智能化数据库云平台

数据库云平台软件厂商「北京新数科技有限公司」(以下简称「新数科技」)已于2023年完成B1轮和B2轮融资,分别由渤海创富和彬复资本投资;义柏资本担任本轮融资独家财务顾问。 新数科技成立于2014年,当前产品矩阵包括数据库…...

【Linux 内核源码分析】Linux内核通知链机制

Linux内核通知链(notifier chain)是一种机制,用于实现内核中的事件通知和处理。它提供了一种灵活的方式,让不同的模块可以注册自己感兴趣的事件,并在事件发生时接收到通知。 通知链由一个或多个注册在其中的回调函数组…...

2023年度回顾:怿星科技的转型与创新

岁月不居,时节如流。随着2023年的落幕,怿星科技在这一年中不仅实现了自身的转型,还在技术创新、产品研发、行业合作和人才培养等方面取得了显著的成就。这一年,怿星科技正式完成了从服务型公司向产品型公司的战略转变,…...

STM32MP157D-DK1 Qt程序交叉编译与运行测试

上篇文章介绍了STM32MP157D-DK1开发板Qt镜像的构建,通过在Ubuntu中重新编译带有Qt功能的系统来实现。 本篇在上篇的基础上,继续搭建Qt的交叉编译环境,实现Qt程序在Ubuntu中编译,在STM32MP157板子中运行。 1 编译安装SDK 在上篇…...

Rancher 单节点 docker 部署备份与恢复

Rancher 单节点 docker 部署备份与恢复 1. 备份集群 获取 rancher server 容器名,本例为 angry_aryabhata docker ps | grep rancher/rancher6a27b8634c80 rancher/rancher:v2.5.14 xxx angry_aryabhata停止容器 docker stop angry_aryabhata创建备…...

WPF容器的背景对鼠标事件的影响

背景:在实现鼠标拖动窗口的过程中发现对父容器设置了鼠标拖动窗口的事件MouseLeftButtonDown private void DragWindow(object sender, MouseButtonEventArgs e) {if (e.LeftButton MouseButtonState.Pressed)DragMove(); } 问题:非常困惑的是&#x…...

pve虚拟机无法开机‘ha-manager set vm:101 --state started‘ failed: exit code 255

pve虚拟机无法开机,提示 ha-manager set vm:101 --state started failed: exit code 255 () Requesting HA start for VM 101 service vm:101 in error state, must be disabled and fixed first TASK ERROR: command ha-manager set vm:101 --state started fail…...

官宣!亚信安全TrustOne实力代言“中国新一代终端安全”

近日,IDC《中国新一代终端安全市场洞察,2023——安全防御的“最前线”》发布,正式定义了“中国新一代终端安全”的技术概念、技术演进和技术特点。该报告基于大量市场调研和数据分析,深入阐释了中国终端安全市场现状及面临的困局&…...

Text visualization : pipeline,wordle,phrase net,word tree

Text visualization(文本可视化)是一种将文本数据转换为可视形式的技术,以便更好地理解和分析文本内容。以下是可能会涉及的几个知识点: 1. Pipeline(流程图):Pipeline是指将文本可视化的过程划…...

C# WPF上位机开发(报表导出)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于在工厂上班的小伙伴来说,导出生产数据、生成报表,这是很习以为常的一个工作。之前的文章中,虽然我们也介绍…...

CentOS7安装部署Zookeeper

文章目录 CentOS7安装部署Zookeeper一、前言1.简介2.架构3.集群角色4.特点5.环境 二、正文1.部署服务器2.基础环境1)主机名2)Hosts文件3)关闭防火墙4)JDK 安装部署 3.单机部署1)下载和解压2)配置文件3&…...

OceanBase入选Gartner®云数据库管理系统魔力象限“荣誉提及”

近日,全球IT市场研究和咨询公司Gartner发布最新报告《Magic Quadrant™ for Cloud Database Management Systems》(全球云数据库管理系统魔力象限)。全自研分布式数据库 OceanBase 入选“荣誉提及”,2022 年推出的云数据库 OB Clo…...

Oracle 19C DBA管理常用命令

登入数据库主机,查看 CRS 资源状态: 集群资源启动完毕后,在任意一节点上利用crsctl查看集群状态。 查看:/u01/app/19c/grid/bin/crsctl status res -t 集群资源管理命令: 启动:/u01/app/19c/grid/bin/cr…...

BIO和NIO编程(待完善)

目录 IO模型 BIO NIO 常见问题 IO模型 Java共支持3种网络编程IO模式:BIO,NIO,AIO BIO 同步阻塞模型,一个客户端连接对应一个处理线程 代码示例: Server端: public class BioServer {private static …...

基于RocketMQ实现分布式事务

前言 在上一篇文章Spring Boot自动装配原理以及实践我们完成了服务通用日志监控组件的开发,确保每个服务都可以基于一个注解实现业务功能的监控。 而本文我们尝试基于RocketMQ实现下单的分布式的事务。可能会有读者会有疑问,之前我们不是基于Seata完成了…...

TikTok社会学:短视频如何塑造社会认知?

TikTok,作为一款全球性的短视频平台,正在深刻地影响着用户的社会认知。在这个数字时代,短视频不仅仅是娱乐的载体,更是塑造和反映社会认知的一面镜子。本文将深入探讨TikTok是如何通过短视频影响社会认知,以及这种影响…...

小秋SLAM入门实战深度学习所有文章汇总

如何用python代码实现虚拟拖拽 MediaPipe Losses 损失函数 深度学习激活函数Activation Functions 【深度学习Regularization正则化】 深度学习: 数据扩充 (Data Augmentation) 【keras-yolo3】 【YOLO源码解读】 caffe源码解读系列 Python中的异常处理 精确率、精度&#xff…...

Newtonsoft.Json-for-Unity:Unity开发者的终极JSON解决方案指南

Newtonsoft.Json-for-Unity:Unity开发者的终极JSON解决方案指南 【免费下载链接】Newtonsoft.Json-for-Unity Newtonsoft.Json (Json.NET) 10.0.3, 11.0.2, 12.0.3, & 13.0.1 for Unity IL2CPP builds, available via Unity Package Manager 项目地址: https:…...

从 POST 到落库回写:彻底讲透 SAP Gateway 中 Create Operation 的实现

在经典的 SAP Gateway 开发里,Create Operation 看上去只是一次新增动作,真正落到运行时,却牵涉到一条非常完整的链路:客户端发起 HTTP POST 请求,请求体里的 OData 数据被 Gateway 运行时反序列化成 ABAP 结构,开发者在对应的 <Entity Set>_CREATE_ENTITY 方法里接…...

Maxwell16.0实战:如何用实验电流数据搞定电机仿真(附.tab文件制作技巧)

Maxwell16.0实战&#xff1a;实验电流数据驱动电机仿真的全流程解析 电机仿真作为现代工业设计的重要环节&#xff0c;其准确性直接影响产品性能评估。而将实测电流数据融入仿真流程&#xff0c;往往是工程师突破"理想模型"局限的关键一步。本文将系统性地拆解从实验…...

Cesium1.95内存优化实战:从3D Tiles到GPU Instancing的完整避坑指南

Cesium1.95内存优化实战&#xff1a;从3D Tiles到GPU Instancing的完整避坑指南 在三维地理信息系统和智慧城市项目中&#xff0c;Cesium作为领先的WebGL框架&#xff0c;其性能表现直接决定了复杂场景的流畅度。当遇到大规模模型加载时&#xff0c;内存溢出成为开发者最头疼的…...

告别Transformer!用PyTorch从零实现MLP-Mixer图像分类(附完整代码与调参技巧)

告别Transformer&#xff01;用PyTorch从零实现MLP-Mixer图像分类&#xff08;附完整代码与调参技巧&#xff09; 在计算机视觉领域&#xff0c;Transformer架构近年来风头无两&#xff0c;但你是否想过——仅用多层感知机&#xff08;MLP&#xff09;也能构建高性能视觉模型&a…...

告别低效写作:盘点2026年标杆级的AI论文网站

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文网站&#xff0c;覆盖选题构思、文献整理、内容生成、格式排版全流程&#xff0c;帮你高效搞定论文写作。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首选&#xff…...

PyTorch 2.8 + CUDA 12.4镜像实战教程:适配10核CPU+120GB内存的完整配置

PyTorch 2.8 CUDA 12.4镜像实战教程&#xff1a;适配10核CPU120GB内存的完整配置 1. 镜像概述与环境准备 1.1 核心特性介绍 这个深度优化镜像基于RTX 4090D 24GB显卡和CUDA 12.4驱动构建&#xff0c;专为高性能深度学习任务设计。主要特点包括&#xff1a; 硬件适配&#…...

Comsol多重法诺共振拟合:探索与实践

comsol多重法诺共振拟合。 在光学与光子学领域&#xff0c;多重法诺共振现象一直是研究的热点。而Comsol作为一款强大的多物理场仿真软件&#xff0c;为我们研究多重法诺共振提供了有力的工具&#xff0c;尤其是其中的拟合功能&#xff0c;能够帮助我们更精准地理解和分析这一…...

网络舆情分析毕业设计:从数据采集到情感识别的技术实现与避坑指南

最近在帮学弟学妹们看网络舆情分析相关的毕业设计&#xff0c;发现大家普遍在几个地方卡壳&#xff1a;要么爬虫被封IP&#xff0c;数据拿不到&#xff1b;要么文本预处理一团糟&#xff0c;模型效果差&#xff1b;要么整个系统耦合在一起&#xff0c;改一处动全身&#xff0c;…...

机票价格智能监控:如何用Flight Spy锁定最佳购票时机

机票价格智能监控&#xff1a;如何用Flight Spy锁定最佳购票时机 【免费下载链接】flight-spy Looking for the cheapest flights and dont have enough time to track all the prices? 项目地址: https://gitcode.com/gh_mirrors/fl/flight-spy 你是否曾在预订机票时陷…...