华为OD机试真题C卷-篇3

文章目录

  • 查找一个有向网络的头节点和尾节点
  • 幼儿园篮球游戏

查找一个有向网络的头节点和尾节点

  • 在一个有向图中,有向边用两个整数表示,第一个整数表示起始节点,第二个整数表示终止节点;
  • 图中只有一个头节点,一个或者多个尾节点;
  • 图可能存在环,有环则输出-1;
  • 输出图中的头节点(入度为0)、尾节点(出度为0),如图头节点为1,尾节点为4。
    在这里插入图片描述
    输入描述:
    第一行输入n,n >=0
    第二行为n个数对,表示n条边;
    输出描述:
    输出一行,头节点、尾节点以空格隔开,多个尾节点则从大到小输出。
     
    示例1
    输入:
    4
    1 2 1 3 2 4 3 4
    输出:
    1 4

思路:

  • 拓扑排序,判断有向图是否有环,有环则直接输出-1;
  • 只有一个起始点,一个或多个结尾点;
relations = {}
indegree = {}
head = -1
tails = []def find_head():global relations,indegree,headfor  keys in relations:if (keys in indegree) :continueelse :head = keysbreakdef find_tails():global relations,indegree,tailsfor keys in indegree :if (keys in relations) :continueelse :tails.append(keys)n = int(input())
nums = [int(x) for x in input().split(" ")]i=0
while(i < 2 * n):if(nums[i] in relations):relations[nums[i]].append(nums[i + 1])else :relations[nums[i]] = []relations[nums[i]].append(nums[i + 1])if(nums[i + 1] in indegree):indegree[nums[i + 1]] += 1else :indegree[nums[i + 1]] = 1i += 2find_head()
find_tails()
tails.sort()queue = []
queue.append(head)
while (True) :if(len(queue)<=0):breakelse :temp = queue[0]queue.pop(0)if(temp in relations):temp_list = relations[temp]for  x in temp_list:indegree[x]= indegree[x] - 1if (indegree[x] == 0) :queue.append(x)
flag = 1
for key in indegree:if (indegree[key] > 0) :flag = 0if (flag==0) :print(-1)
else: output_str = str(head) + " "for x in tails:output_str += str(x) + " "print(output_str[:-1])

 

幼儿园篮球游戏

在这里插入图片描述
在这里插入图片描述
双指针+ 线性表

import functools
import sys
import copy
import re
import mathnums = [int(x) for x in input().split(",")]
target_nums = [int(x) for x in input().split(",")]arr = [float('inf') for i in range(300)]left = 0
right = 0
target_pos = 0result = ""
i=0
while(True):if(i>=len(nums)):breakelse :arr[right] = nums[i]right+=1while (True) :if(right <= left):breakelse :if (arr[left] == target_nums[target_pos]) :result += "L"left += 1target_pos += 1continueelif (arr[right-1] == target_nums[target_pos]) :result += "R"right -= 1target_pos += 1continuebreaki+=1if (left != right) :print("NO")
else :print(result)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【从0上手Cornerstone3D】如何使用CornerstoneTools中的工具之同步器

同步器&#xff08;Synchronizers&#xff09;可以使多个视图同步响应同一个工具的操作&#xff0c;例如我们在MPR视图下&#xff0c;同步操作三个视图的缩放程度、windowLevel等等 一个同步器必须需要以下几个部分才可以执行 一个监听事件&#xff08;什么情况下触发同步&…

88.网游逆向分析与插件开发-物品使用-物品使用策略管理UI的设计

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;物品交换的逆向分析与C封装-CSDN博客 码云地址&#xff08;ui显示角色数据 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;f1b9b1a69ac3e2c3…

私有化部署一个吃豆人小游戏

目录 效果 安装步骤 1.安装并启动httpd 2.下载代码 3.启动httpd 使用 效果 安装步骤 1.安装并启动httpd yum -y install httpd 2.下载代码 进入目录 cd /var/www/html/ 下载 git clone https://gitee.com/WangZhe168_admin/pacman-canvas.git 3.启动httpd syste…

【Qt Design】界面介绍

文章目录 前言Widget Box&#xff08;工具箱&#xff09;对象查看器Qt Design属性编译器sizePolicy内容 信号/槽编辑器资源浏览器ui文件 前言 Widget Box&#xff08;工具箱&#xff09; 提供很多控件 对象查看器 对象查看区域&#xff0c;可以查看主窗口放置对象的列表 …

partition by list(msn_id)子句的含义

在数据库查询中&#xff0c;特别是在使用SQL语言时&#xff0c;"PARTITION BY" 子句用于对结果集进行分区&#xff0c;以便可以对每个分区进行单独的聚合操作。这是在执行窗口函数&#xff08;如 ROW_NUMBER(), RANK(), SUM(), AVG() 等&#xff09;时特别有用的。 …

java中如何使用Lambda表达式(十五)

如何使用Lambda表达式实现不可变数据结构&#xff08;Immutable Data Structures&#xff09;&#xff1f; Lambda表达式在实现不可变数据结构方面非常有用&#xff0c;因为它们允许我们以声明式方式定义操作&#xff0c;而不是以命令式方式。声明式编程允许我们指定“应该是什…

力扣454-四数相加

四数相加 题目链接 解题思路&#xff1a; 用一个哈希表来存储数组C和D当中所有可能出现的和的次数遍历数组A和B&#xff0c;看看是否有满足cd-(ab)即可。 class Solution { public:int fourSumCount(vector<int>& A, vector<int>& B, vector<int>&a…

二叉树经典习题

二叉树具有天然的递归结构 LeetCode 965. 单值二叉树 class Solution {public boolean isUnivalTree(TreeNode root) {// 节点数范围&#xff0c;可直接取根节点值int val root.val;return dfs(root, val);}public boolean dfs(TreeNode node, int val) {if (node null)ret…

Linux ncftp命令教程:如何使用ncftp来管理FTP服务器(附实例详解和注意事项)

Linux ncftp命令介绍 ncftp是一种增强的FTP客户端程序&#xff0c;它可以让你在本地和远程服务器之间传输文件&#xff0c;并管理远程服务器上的文件和目录。ncftp具有许多特色&#xff0c;包括显示传输速率&#xff0c;下载进度&#xff0c;自动续传&#xff0c;标记书签&…

鸿蒙内核框架

1 内核概述 内核简介 用户最常见到并与之交互的操作系统界面&#xff0c;其实只是操作系统最外面的一层。操作系统最重要的任务&#xff0c;包括管理硬件设备&#xff0c;分配系统资源等&#xff0c;我们称之为操作系统内在最重要的核心功能。而实现这些核心功能的操作系统模…

教授LLM思考和行动:ReAct提示词工程

ReAct&#xff1a;论文主页 原文链接&#xff1a;Teaching LLMs to Think and Act: ReAct Prompt Engineering 在人类从事一项需要多个步骤的任务时&#xff0c;而步骤和步骤之间&#xff0c;或者说动作和动作之间&#xff0c;往往会有一个推理过程。让LLM把内心独白说出来&am…

LLM(大语言模型)——大模型简介

目录 概述 发展历程 大语言模型的概念 LLM的应用和影响 大模型的能力、特点 大模型的能力 涌现能力&#xff08;energent abilities&#xff09; 作为基座模型支持多元应用的能力 支持对话作为统一入口的能力 大模型的特点 常见大模型 闭源LLM&#xff08;未公开源…

软考21-上午题-数组、矩阵

数组&#xff1a;一组地址连续的空间。 数组是定长线性表在维数上的扩展&#xff0c;即&#xff0c;线性表中的元素又是一个线性表。 一、数组 数组的特点&#xff1a; 数组数目固定&#xff0c;一旦定义了数组结构&#xff0c;不再有元素个数的增减变化。因此&#xff0c;数…

【HTML 基础】语义化标签

文章目录 1. <header>2. <nav>3. <article>4. <section>5. <footer>为什么使用语义化标签结语 在现代的 Web 开发中&#xff0c;语义化标签成为设计网页结构的重要组成部分。通过使用 <header>, <nav>, <article>, <sectio…

XAI:探索AI决策透明化的前沿与展望

文章目录 &#x1f4d1;前言一、XAI的重要性二、为什么需要可解释人工智能三、XAI的研究与应用四、XAI的挑战与展望 &#x1f4d1;前言 随着人工智能技术的快速发展&#xff0c;它已经深入到了我们生活的方方面面&#xff0c;从智能手机、自动驾驶汽车到医疗诊断和金融投资&…

2.5学习总结9

并查集 知识点 并查集是一种数据结构&#xff0c;用于处理一些不相交集合的合并及查询问题。它支持两种操作&#xff1a; Find(x)&#xff1a;查找元素 x 所属的集合。Union(x, y)&#xff1a;将元素 x 所属的集合和元素 y 所属的集合合并。 初始化&#xff1a;将每个元素单…

探访成武非遗,感受文化传承魅力

为深入了解非遗文化&#xff0c;探究其时代内涵与精神价值。 2024年2月5日&#xff0c;曲阜师范大学计算机学院“古韵新声&#xff0c;格物致‘知’”实践队队员张悦在山东省菏泽市成武县开展社会实践活动&#xff0c;前往成武县文化馆进行实地参观&#xff0c;追寻非遗痕迹&am…

从零开始手写mmo游戏从框架到爆炸(二)— 核心组件抽离与工厂模式创建

上一章我们已经完成了一个基本netty的通信&#xff0c;但是netty的启动很多代码都是重复的&#xff0c;所以我们使用工厂模式来生成不同的ServerBootstrap。 首先创建一个新的组件core组件&#xff0c;和common组件&#xff0c;主要用于netty通信和工具类&#xff0c;从server…

JavaScript基础速成

由于学web时只学了后端&#xff0c;现在到了前后端联调的场景发现看不懂前端代码&#xff0c;于是开始恶补 看了下基础内容发现html和css比较好看懂&#xff0c;但JavaScript比较迷&#xff0c;大概知道组件id绑定事件 下面选取看菜鸟教程补充的JS知识 JS的作用 JS是在html…

PDF文件格式(一):新版格式交叉引用表

PDF交叉引用表是PDF的重要组成部分&#xff0c;本文介绍的是新交叉引用表&#xff0c;这种引用表的格式是PDF的obj格式&#xff0c;内容是被压缩存放在obj下的stream中&#xff0c;因此比常规的引用表格式复杂。下面就开始介绍这种交叉引用表的格式和解析的方法&#xff1a; 1…