2020网易笔试编程题(一)

2023-11-20

题目:在一次聚会中,教授们被要求写下自己认可哪位教授的学术成果(也可以写自己,且可能出现重复)。已知,如果教授A认可教授B,且教授B认可教授C,那么即可视为教授A也认可教授C。现在我们想知道多少对教授是两两互相认可的?
(输入举例:输入教授人数:5,认可关系数:6,认可关系分别为:A->C,B->A,C->B,C->E,D->E,E->D。则两两互相认可的教授有4对:A<–>B,B<–>C,A<–>C,D<–>E。)
吐槽:网易21校招的在线笔试题,100分钟4道编程题。。。有一道题还算简单,思路很快出来,代码花了些时间,但是在网上编译不管怎么调都只通过了86%的测试用例,真素令人作呕!不得不说牛客网的编程系统检测太傻叉了。。。然后就是这道题了,一开始思路有点歪,导致浪费了不少时间,然后再确定思路的,然而实际不多了,费心费力把代码编译后提示超出内存限制。。。然后,就没有然后了,基本是凉凉了,不过本着不服输的原则,还是打算私下把这四道题争取都做出来,提升下自己的算法能力!
个人思路:我当时做题选择的思路就是利用二维数组,因为这种两两对应关系很符合矩阵中的对称性质,即i认可j,j也认可i,则相当与矩阵中(i,j)的值等于(j,i),因此我选择用二维数组,记录输入的认可关系。以上面的输入为例,将A,B,C,D,E看作1,2,3,4,5,因此得出初始的二维数组如下图所示:
在这里插入图片描述
将6对关系转换到二维数组中的结果就是(0,2),(1,0),(2,1),(2,4),(3,4),(4,3)位置的元素都为1,其余的都为0,(i,j)位置为1的就代表i认可j。
得出初始的关系矩阵后,我们还要找出那些间接存在从认可关系,例如(0,2)与(2,1)为1,则说明(0,1)也间接为1。这一步就需要对二维数组进行遍历了,依次对第i行进行遍历,然后找出该行中为1的列号j,然后进入与第j行,找出第j行中为1的列号,则把第i行中对应的列号的元素也置1。这样说有点迷糊,还是照样举例说明:如下图所示,以第一行为例,(0,2)为1,即1认可3,而3又同时认可2和5,在数组中就是(2,1)与(2,4)都为1,因此1也应该间接认可2和5,即(0,1)和(0,4)也该为1。按照这种方法,遍历完数组就能得到一个完整的关系矩阵了!然后再次遍历矩阵,判断(i,j)与(j,i)都为1的对数即为结果!
在这里插入图片描述
代码如下所示,经过测试感觉结果应该都没问题,不过当时网上编译提示的是超出内存限制,估计是我定义的二维数组的问题,可能导致空间复杂度比较高。后期看有没有时间优化一下吧(这就是我觉得网上编程笔试的鸡肋所在了,虽然我得出的可能不是最优解法,但至少也是一种可行的思路,测试结果也都是对的,结果电脑直接一把子给我个不通过,如果是面试官的话好歹也能给点分吧,真素无语死了!恶熏!)

#include<iostream>
#include<vector>
using namespace std;

int Solution(
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2020网易笔试编程题(一) 的相关文章

  • 无法在 QGLWidget 中设置所需的 OpenGL 版本

    我正在尝试在 Qt 4 8 2 中使用 QGLWidget 我注意到 QGLWidget 创建的默认上下文不显示 OpenGL 3 1 以上的任何输出 Qt wiki 有一个教程 http qt project org wiki How t
  • 未找到 DEADLINE 调度策略

    我想在 C 中实现 DEADLINE 调度策略 我知道该功能已实现Linux 3 14 10我正在使用 Ubuntu 14 04Linux 3 17 0 031700 lowlatency 201410060605 SMP PREEMPT这
  • 使用 POST 的 HttpWebRequest 的性能

    我有一个用于测试网络服务的小工具 它可以使用 POST 或 GET 调用 Web 服务 使用POST的代码是 public void PerformRequest WebRequest webRequest WebRequest Creat
  • 如何使用T4从一个模板同时生成两个文件?

    我遇到的情况是 我需要生成两个 CSharp 代码文件 它们的代码几乎相同 但方法的输入和输出类型的命名空间不同 事实上 每个文件都针对特定国家 地区 并且类型来自特定国家 地区的 WSDL 我正在围绕服务编写一些包装器 逻辑完全相同 但从
  • C++中类成员函数相互调用有什么好处?

    我是 C 新手 我发现下面的编程风格对我来说很有趣 我在这里写了一个简化版本 include
  • 每个元素的 asp.net Web 表单自定义错误消息

    我创建了一个 Web 应用程序 表单 以及后端 SQL 插入和查询 目前我正在显示所有用户错误消息 div style padding 1em div
  • Visual Studio 2013 调试器显示 std::string 的奇怪值

    我有一个大型的 cmake 生成的解决方案 其中包含许多项目 由于某种原因 我无法查看字符串的内容 因为根据调试器 Bx Buf含有一些垃圾 text c str 正确返回 Hello 该问题不仅仅发生在本地字符串上 返回的函数std st
  • 如何在 Linux 上重新实现(或包装)系统调用函数?

    假设我想完全接管 open 系统调用 也许要包装实际的系统调用并执行一些日志记录 一种方法是使用 LD PRELOAD http scaryreasoner wordpress com 2007 11 17 using ld preload
  • 重载算术运算符

    赋值运算符可以声明为 T 运算符 const t 在类中 但不能以这种方式定义算术运算符 它必须是友元函数 我不明白为什么 你能解释一下吗 算术运算符不必须是友元 那么你可以这样定义 MyClass MyClass operator con
  • 如何在 C 中链接目标文件?失败并显示“架构 x86_64 的未定义符号”

    因此 我尝试在我的文件 file2 c 中使用另一个 C file1 c 文件中定义的函数 为了做到这一点 我包含了 file1 file1 h 的标头 但是 每当我尝试使用 gcc 编译文件时 我都会收到以下错误 Undefined sy
  • 如何在 C++ 中正确使用 cin.fail()

    我正在编写一个程序 从用户那里获取整数输入cin gt gt iUserSel 如果用户输入一个字母 程序就会进入无限循环 我试图用下面的代码来阻止这种情况 但程序进入无限循环并打印出 错误 输入 我该如何修复我的程序 cin gt gt
  • 当我尝试传递临时地址作为参数时,它是一个 UB 吗?

    对于以下 C 代码 include
  • C# 可以为控制台应用程序部分类“程序”类吗?

    我想知道是否可以将为任何控制台应用程序创建的默认 程序 类更改为部分类 我想这样做是因为我想要更好的组织 而不是将所有方法都放在按区域分类的 1 个文件中 对我来说 将某些方法类别放在单独的文件中会更有意义 我对分部类的理解是 它是多个文件
  • MINIX内部碎片2

    我正在用 C 语言编写一些软件 它递归地列出给定目录中的所有文件 现在我需要计算出内部碎片 我花了很长时间研究这个问题 发现 ext2 上的内部碎片只发生在最后一个块中 我知道理论上你应该能够从索引节点号获得第一个和最后一个块地址 但我不知
  • 将 AutomationID 与 ListView 结合使用

    我正在尝试将 AutomationId 附加到列表视图中的项目 理想情况下 将项目名称绑定到显示的项目
  • fgets溢出后如何清除输入缓冲区?

    当输入字符串超出其预定义限制时 我遇到了 fgets 的小问题 以下面的例子为例 for index 0 index lt max index printf Enter the d string index 1 if fgets input
  • MPI - 发送和接收列

    我需要从一个进程发送矩阵列并从另一个进程接收它 我尝试运行以下程序 但得到了一个奇怪的结果 至少我这么认为 仅复制矩阵的第一个元素 某些矩阵元素会发生意外变化 include
  • 异步/等待 - 是*并发*吗?

    我一直在考虑 C 5 中新的异步内容 并且出现了一个特殊问题 据我了解 await关键字是一个简洁的编译器技巧 语法糖来实现连续传递 http en wikipedia org wiki Continuation passing style
  • 使用空的weak_ptr作为参数调用map::count安全吗?

    打电话安全吗map count http www cplusplus com reference map map count on an 未初始化因此为空weak ptr http en cppreference com w cpp mem
  • 将同步 zip 操作转换为异步

    我们有一个现有的库 其中一些方法需要转换为异步方法 但是我不确定如何使用以下方法执行此操作 错误处理已被删除 该方法的目的是压缩文件并将其保存到磁盘 请注意 zip 类不公开任何异步方法 public static bool ZipAndS

随机推荐

  • SAP-ABAP-普通OOALV,OOALV分屏展示,发送邮件excel附件合并单元格,附件带框线,附件居中。

    功能展示 1 三个可拖动变换大小的屏幕 2 普通OOALV 3 带格式的邮件附件 三个表格 合并居中 单元格带框线 指定列宽 代码如下 复制可直接激活 没有include 创建程序后还有一些其他步骤 详情见后文 Report ZLQT OO
  • 工程和界面—Webstorm入门指南

    转载自http www 36ria com 5698 工程和界面 Webstorm入门指南 Webstorm中的工程 1 新建工程 Quick Start 界面新建工程 也可以点击顶部菜单栏 File gt New Project 弹出如下
  • MACD底背离选股公式——通达信、同花顺

    底背离 通达信版 同花顺版 DIFF EMA CLOSE 12 EMA CLOSE 26 DEA EMA DIFF 9 MACD 2 DIFF DEA QZQ BARSLAST REF MACD 1 lt 0 AND MACD gt 0 Q
  • c语言统计出现个数,C语言统计数字出现的个数

    程序功能 统计数字出现的个数 例如 输入1 2 3 1 2 4 2 3 1 输出 1 3 2 3 3 2 4 1 能看懂吗 就是1出现3次 2出现3次 3出现2次 4出现1次 define M 50 main int a M c 5 i n
  • SQLite、MySQL和PostgreSQL 三种关系数据库比较

    关系型数据库的使用已经有相当长的时间了 它们变得流行起来托了管理系统的福 关系模型被实现得相当的好 并且被证明是操作数据的好方法 特别是事务性强的应用 在这篇DigitalOcean文章中 我们将尝试理解一些最常用 最流行的关系型数据库管理
  • 正确打开visual studio2015

    找到visual studio2015的安装目录 点击其中的devenv exe打开
  • 02-RabbitMQ之Docker安装Rabbit单机与集群

    一 docker安装单机rabbit 1 查找rabbitmq镜像或者在docker仓库查看rabbitmq镜像 docker search rabbitmq 2 拉取最新的rabbitmq docker pull rabbitmq 3 运
  • KEIL经常出现 Encountered an improper argument 弹窗

    关于 keil5 使用在线调试时 经常出现 Encountered an improper argument 弹窗 经实测 可有如下方法 方法1 下载UV4 exe 替换本机电脑 Keil UV4目录下的UV4 exe 更换后 如果不能编译
  • 7-14 解一元一次方程 (17 分)

    请编写程序 解一元一次方程 ax b 0 一元一次方程求解公式为 x ab 求解要求 a 0 方程有唯一解 输出解 a 0 b 0 方程无解 输出no solution a 0 b 0 则方程有无穷多解 输出Infinitely solut
  • The absolute uri: http://java.sun.com/jsp/jstl/fmt cannot be resolved in either web.xml or the jar

    错误提示 org apache jasper JasperException file H netbeans workspace netbeans 6 9 ShoppingSystemOnline build web system fron
  • [LDUoj 倍增] 题解

    星星之火 可以燎原 细节的地方慢慢补充 欢迎提出问题 私聊 留言均可 A 跳跳棋 较难 B 聚会 板子题 C 祖孙询问 板子题 D Dis 板子题 E 次小生成树 严格次小生成树 难 F 异象石 难度适中 G 暗的连锁 难度适中 H 点的距
  • 3D游戏编程实践——Priests and Devils

    编程实践 Priests and Devils github链接 https github com ctlchild SYSU unity3d learning tree master hw2 Priests and Devils is a
  • 给Protobuf中的repeated类型变量添加子项

    Protobuf为repeated类型变量生成的自动代码 不提供通常的类似add item item 的添加子项的成员函数 Protobuf的做法是 UserDocChangesResp changes DocChangeInfo chan
  • Linux shell 编程之 - 合并两个文件

    两个文件a1 b1 内容分别如下 a1 1 2 3 b1 a b c 如何把它们合在一起内容如下的 1 a 2 b 3 c paste d a1 a2 SUN的Solaris只能合并12个文件 sco5 5下ksh只能合并6个文件 在aix
  • Allegro PCB封装焊盘介绍(一)

    PCB封装焊盘结构 焊盘结构如图 1所示 图 1焊盘结构 锡膏层 SMT刷锡膏贴片用 一般贴片焊盘要选 跟焊盘等大 阻焊层 把焊盘裸露出来 不开的话 焊盘会被油墨盖住 这样无法焊接哦 一般比焊盘大0 1mm 顶层 底层焊盘 实际焊盘大小 电
  • tensorRT 与 torchserve-GPU性能对比

    实验对比 前端时间搭建了TensorRT Torchserve GPU 最近抽时间将这两种方案做一个简单的实验对比 实验数据 Cuda11 0 Xeon 6242 3 1 80 RTX3090 24G Resnet50 TensorRT T
  • nosql练习

    1 string类型数据的命令操作 1 设置键值 2 读取键值 3 数值类型自增1 4 数值类型自减1 5 查看值的长度 2 list类型数据的命令操作 1 对列表city插入元素 Shanghai Suzhou Hangzhou 2 将列
  • Qt中代码添加背景图

    第一步 选择一张背景图下到本地 第二步 在qt中点击添加新文件选择图中位置 随便起个名字 点击下一步 这时项目中多出一个目录 选择打开资源编辑器 底部添加前缀 注意该前缀是在内部使用图的路径 点击添加 gt 添加前缀 我这里直接使用的 作为
  • STM32F4实现SD卡读写

    更多交流欢迎关注作者抖音号 81849645041 目的 熟悉SD卡和SDIO工作原理 掌握SD卡的读写 原理 大多单片机系统都需要大容量存储设备 以存储数据 目前常用的有 U 盘 FLASH 芯片 SD 卡等 他们各有优点 综合比较 最适
  • 2020网易笔试编程题(一)

    题目 在一次聚会中 教授们被要求写下自己认可哪位教授的学术成果 也可以写自己 且可能出现重复 已知 如果教授A认可教授B 且教授B认可教授C 那么即可视为教授A也认可教授C 现在我们想知道多少对教授是两两互相认可的 输入举例 输入教授人数