浅浅记录一次用友笔试「2023-08-06」

计算被直线划分区域

在笛卡尔坐标系,存在区域[A, B],被不同线划分成多块小的区域,简单起见,假设这些不同线都直线并且不存在三条直线相交于一点的情况

那么,如何快速计算某个时刻,在 X 坐标轴上[A, B]区间面积被直线划分成多少块?

如下图所示,区域[A, B]被三条划分为 7 个块!!

1

 

输入描述

输出描述

示例 1

备注

思路

最初,只有 1 个块,当添加第一条直线后,整个区域被划分为 2 个块

当添加第二天直线后,如果与之前的直线无相交,则整个区域被划分为 3 个块;如果与之前的直线有相交,则整个区域被划分为 4 个块

总结:若有 n 交点,则区域会新增 n 个块

代码

最佳面试策略

小明最近在找工作,收到了许多面试邀约,可参加的面试由interviews数组表示,其中interviews[i] = [startTimei, endTimei, possibilityi],表示第 i 个面试在startTimei开始,endTimei结束,面试成功的可能性是possibilityi,该值越大,通过面试的可能性越大,由于精力限制,小明最多可以参加k场面试

小明同一时间只能参加一场面试,如果要参加某场面试,必须完整参加这场面试才可能通过面试,即不能同时参加一个开始时间和另一个结束时间相同的两场面试

请给出小明面试成功可能性的最大和

示例 1

示例 2

相似题目

代码

星球间的最短通路

在一个遥远的银河中,有 N 个星球 (编号从 1 到 N),这些星球之间通过星际门进行连接。每个星际门都连接两个星球,并且可以双向通行

每个星际门的开启需要消耗一定的能量,这个能量由星际门上的数字表示。每个星际门上的数字都是唯一的

现在,由于某种原因,所有的星际门都处于关闭状态。作为一个探索者,你的任务是找出一种方式,开启最少的星际门,使得所有的星球都至少通过一个开启的星际门与其他星球连接

给你一些可连接的选项connections,其中connections[i] = [Xi, Yi, Mi]表示星球Xi和星球Yi之间可以开启一个星际门,并消耗Mi能量

计算联通所有星球所需的最小能量消耗。如果无法联通所有星球,则输出 -1

示例 1

备注

思路

最小生成树,推荐使用 Kruskal 算法,配合并查集

相似题目

代码

反思

由于这是本人第一次笔试,有点自乱阵脚,虽然之前也模拟写过笔试 (😈),但亲自上场该慌还是慌!!!

一开始以为只有三个编程题,但点开一看,居然还有 10 个单选题和 10 个多选题,时间一共 90 分钟,这一波出其不意更慌了,完全打乱了阵脚。在写完选择题后,已经花费了 30 分钟,还剩 60 分钟

看了第一个编程题,接着又看了第二个编程题,一看认出之前写过,所以直接先写第二个编程题,大概花了 10 多分钟写完了第二题然后直接看第三题,脑海里回想起貌似写过类似的,然后直接一波 DFS

当第三题代码写到一半时,不知电脑咋回事,突然卡了,点啥都没反应,索性直接重启,真是雪上加霜,一波三折!!当时已经花了 60 分钟,还剩 30 分钟

重启后,继续按照 DFS 的思路把剩下的代码写完了,但运行时直接报错,但是又很赶时间,就越找不出错误,诶!!心态太重要了,而且我还不停的在关注右下角的时间,越看越慌

总之,这是一次体验感极差的笔试,也是一次失败的笔试,自己的心态太容易被影响!!!!

改进: