- 博客(627)
- 收藏
- 关注
原创 2025.06.11-华子第三题-300分
这篇题解分析了"卢小姐的展览馆设计"问题,要求在允许交换任意两个展示柜位置后,求解展览馆区域中的最大矩形面积。以下是摘要: 问题核心:在经典直方图最大矩形问题基础上增加一次交换操作机会,需通过交换提升某个区间的最小值从而增大矩形面积。 关键思路: 使用分治算法结合线段树查询区间最小值 预处理前缀和后缀最大值以快速获取区间外最大值 对于每个区间,考虑交换其最小值与区间外最大值来提升面积 算法优化: 线段树实现O(logn)的区间最小值查询 分治递归处理左右子区间 利用预处理数据计算交换后的
2025-06-14 10:03:59
60
原创 2025.06.11-华子第二题-200分
本文将详细介绍如何优化智能家居网络的树形拓扑结构,确保所有叶子节点到中央控制器的距离相同。题目要求移除最少的设备节点,使得剩余网络中所有叶子节点到根节点的距离一致。文章提供了一种基于动态规划的解决方案: 构建树形结构并以节点1为根 计算每个节点到最远叶子节点的高度 枚举可能的目标深度,使用动态规划计算能保留的最大节点数 最终结果为总节点数减去最大保留节点数 解决方案时间复杂度为 O(n×h),其中 h 是树的高度。文末提供了Python、C++和Java三种语言的参考代码实现,帮助读者理解算法的具体实现细节
2025-06-14 10:03:21
25
原创 2025.06.11-华子第一题-100分
摘要: 题目描述LYA在校园内配送快递的最短路径问题。校园有N个地点构成树状结构,总部位于地点1。配送流程分为:收取包裹(访问所有寄件地点)、返回总部、派送包裹(访问所有收件地点)、返回总部。要求计算完成M个任务的最短总路程。 算法思路: 收取阶段:计算包含所有寄件地点的最小连通子树的边权和×2(往返) 派送阶段:同理计算包含所有收件地点的最小连通子树边权和×2 使用DFS遍历树结构,标记必须经过的边,累加边权 复杂度分析: 时间复杂度:O(N),通过两次DFS遍历树结构 空间复杂度:O(N),存储树结构和
2025-06-14 10:02:41
18
原创 2025.06.11-华子留学生第一题-300分
摘要 本文介绍了一个智能编程环境的命令自动补全系统,通过编辑距离(莱文斯坦距离)匹配用户输入与合法命令。系统根据用户输入与命令的相似度,输出最匹配的结果。算法核心是动态规划计算编辑距离,并采用优化策略提高效率。解决方案包括Python、C++和Java代码实现,适用于处理大规模命令集(N≤30000)和中等长度字符串(L≤25)。当用户输入与命令完全匹配时直接输出,否则输出所有编辑距离不超过阈值D的候选命令,按距离和字典序排序展示。
2025-06-14 09:59:48
9
原创 2025.06.11-华子留学生第一题-200分
K小姐的密室逃脱问题要求寻找从起点到终点的最短路径,网格中包含可通行地板(0)、墙壁(1)、传送门(2)等元素。使用0-1 BFS算法处理传送门的0代价传送,普通移动每次消耗1单位时间。算法预处理传送门映射,用双端队列优先处理0代价状态,确保找到最短路径。时间复杂度O(mn),空间复杂度O(mn)。样例1中绕过墙壁耗时8单位,样例2利用传送门仅需4单位。无法到达时输出-1。
2025-06-14 09:59:09
17
原创 2025.06.11-华子留学生第一题-100分
摘要: 题目要求将图书馆座位序列划分为最多的连续区域,确保每种颜色的座位完全包含在同一个区域内。采用贪心算法,先记录每个颜色的最后出现位置,然后从左到右扫描,动态调整区域边界。当扫描位置到达边界时,划分出一个区域。算法时间复杂度为O(n),空间复杂度O(1)。示例代码展示了Python、C++和Java的实现,输出结果为各区域长度列表。例如输入"abcdeabl"输出[7,1],表示划分为两个区域。
2025-06-14 09:58:35
343
原创 【2025年B卷】OD-100分-斗地主之顺子
例如:{3,4,5,6,7}和{3,4,5,6,7,8,9,10,J,Q,K,A}都是有效的顺子;而{J,Q,K,A,2}、{2,3,4,5,6}、{3,4,5,6}(少于5张)、{3,4,5,6,8}(不连续)等都不是有效的顺子。在这个游戏中,扑克牌由小到大的顺序为:3、4、5、6、7、8、9、10、J、Q、K、A、2。如果能组成顺子,则每行输出一个顺子,顺子中的每张牌用空格分开,且按照顺子首牌的大小从小到大排序。顺子是一种常见的出牌方式,其规则为:由至少5张由小到大连续递增的扑克牌组成,且不能包含2。
2025-06-03 21:41:29
64
原创 【2025年B卷】华为OD-100分-字符串重新排列、字符串重新排序
因此总体时间复杂度为O(n * m log m + n log n),对于题目给定的数据范围(字符串长度不超过1000),这个复杂度是可以接受的。首先,需要对每个单词内部的字母进行排序。这里可以将每个单词转换为字符数组,然后使用内置的排序函数对字符进行重新排列,最后再转回字符串。在不同编程语言中,都有对应的方法来支持自定义排序。空间复杂度为O(n),主要用于存储单词及其出现次数。请输出处理后的字符串,每个单词以一个空格分隔。输出处理后的字符串,每个单词以一个空格分隔。包括以空格分隔的若干个单词,请对。
2025-06-02 19:16:53
146
原创 2025.05.28-华为暑期实习第三题-300分
摘要:K小姐计划攀登一座神秘山峰,给定二维地图表示各点海拔高度。从高度为0的山脚出发,每次可向上下左右移动一步,移动需满足攀爬能力限制:向上移动时目标高度不超过当前高度加能力值,向下移动时不低于当前高度减能力值。求到达最高点(唯一山顶)的最少步数,若无法到达则返回-1。使用广度优先搜索(BFS)算法,从山脚开始探索可达点,首次到达山顶的路径即为最短路径。时间复杂度O(R×C),空间复杂度O(R×C),适用于大规模地图。
2025-05-29 11:09:26
46
原创 2025.05.28-华为暑期实习第二题-200分
摘要 题目要求为A先生规划从起点到终点的最短旅游路径,当存在多条最短路径时选择景点编号字典序最小的路线。解法采用改进的Dijkstra算法,在计算最短路径时维护路径字符串,遇到等长路径时比较字典序。输入包括景点邻接矩阵、酒店信息、起点和终点,输出最优路径的景点编号序列。该方法时间复杂度为O(n²),适用于n≤15的数据规模。 (149字)
2025-05-29 11:08:56
605
原创 2025.05.28-华为暑期实习第一题-100分
本文提出了使用滑动窗口和双端队列解决无线信号发射器选择问题的高效算法。给定n个节点的信号发射器及其用户连接数,算法确定行人经过每个路段时应连接用户数最少的发射器。关键点在于: 每个路段i对应的候选发射器范围为[max(0,i+1-k), min(n-1,i+k)],需要找出其中负载最小的发射器 使用双端队列维护当前窗口的最小值,保证队列按负载递增排序 移除队尾比新元素大的元素以保持单调性 移除过期元素(超出窗口左边界的索引) 时间复杂度为O(n),适用于大规模数据(n≤10^5) 该方案避免了重复扫描窗口的
2025-05-29 11:08:30
636
原创 2025.05.22-得物春招机考真题解析-第三题
这篇文章介绍了机器人导航路径计数问题,主要内容包括: 问题描述:在n×n网格中,机器人从左上角到右下角,只能向右或向下移动,存在两个障碍物,求不同路径数量。 解决方案: 使用动态规划方法 定义dp[i][j]表示到(i,j)位置的路径数 状态转移方程:dp[i][j] = dp[i-1][j] + dp[i][j-1] 处理障碍物位置设为0 算法特点: 时间复杂度O(n²),空间复杂度O(n²) 结果对998244353取模 代码实现:提供了Python、C++和Java三种语言的实现代码,核心逻辑一致。
2025-05-26 19:36:28
511
原创 2025.05.22-得物春招机考真题解析-第二题
摘要:题目描述魔法书页重排问题,初始每页标记对应页码,按照规则对每个x的倍数页进行循环右移操作。算法通过遍历1到n,收集每个x的倍数位置并执行循环右移,时间复杂度为O(n log n)。提供了Python、C++和Java三种实现代码,展示了如何高效模拟这一过程并输出最终每页的标记结果。核心在于理解循环右移操作及其对数组元素的影响。
2025-05-26 19:35:33
1142
原创 2025.05.25-得物春招机考真题解析-第一题
贪心策略是:在保证能够到达目标的前提下,每一步都尽可能选择较小的移动距离。我们需要找到使用设备次数最少的方案,并且在所有最优方案中选择字典序最小的。层,应该如何安排每次使用设备时向上移动的层数?为了便于设备的程序化控制,需要输出字典序最小的移动方案。K小姐是一名快递配送员,她需要在城市中的高楼间进行配送任务。对于每组测试数据,第一行输出最少需要使用设备的次数,第二行输出字典序最小的移动方案。K小姐配备了一台智能升降设备,每次使用这台设备可以帮助她向上移动若干层。由于设备的技术限制,每次移动的层数。
2025-05-26 19:34:56
63
原创 2025.05.22-携程春招机考真题解析-第四题
卢小姐开发了一个二进制编码调整系统,要求判断给定的二进制序列是否可以通过最多一次位置交换操作变成一个能被3整除的特殊编码。系统接收多个测试用例,每个用例包含一个二进制序列。如果序列已经是特殊编码,输出0;如果可以通过一次交换实现,输出交换的位置;否则输出-1。算法通过计算序列的十进制值模3的结果,并根据交换操作对模运算的影响,寻找合适的交换位置。时间复杂度为O(n),适用于大规模数据处理。
2025-05-23 12:09:18
39
原创 2025.05.22-携程春招机考真题解析-第三题
LYA的数据分析系统问题要求将一个包含$n$个数值的数据集分割成两个非空子集,使得两个子集的“指标差异度”最小。指标差异度定义为前半部分子集的总和与后半部分子集的按位或运算结果的差的绝对值。通过预处理前缀和和后缀按位或数组,可以高效地枚举所有可能的分割点,计算最小差异度。该问题的时间复杂度为$O(n)$,空间复杂度为$O(n)$。参考代码提供了Python、C++和Java的实现,展示了如何通过预处理和枚举分割点来解决问题。
2025-05-23 12:08:07
125
原创 2025.05.22-携程春招机考真题解析-第二题
A先生负责的数组优化系统允许通过“协调操作”将数组中的任意两个元素替换为两个新的正整数,且这两个新整数的最大公约数必须等于原元素的最大公约数。目标是通过多次操作使数组元素总和最小。经过分析,最小总和等于数组长度乘以数组所有元素的最大公约数。算法步骤包括计算数组的最大公约数,并返回该值乘以数组长度。时间复杂度为O(n log A),其中A是数组元素的最大值。提供了Python、C++和Java的参考代码实现。
2025-05-23 12:06:06
999
原创 2025.05.22-携程春招机考真题解析-第一题
K小姐设计了一个字母解码系统,通过计算三个关键字母与目标字母之间的“解码复杂度”来评估解码难度。解码复杂度的定义为:每个关键字母到目标字母的距离等于它们在字母表中位置差的绝对值减去1,若结果为负数则取0。总解码复杂度为三个字母的复杂度之和。输入包含多个测试用例,每个用例给出三个关键字母和一个目标字母,要求输出总解码复杂度。解题思路是计算每个关键字母与目标字母的距离,并累加结果。时间复杂度为O(T),空间复杂度为O(1)。代码示例提供了Python、C++和Java的实现。
2025-05-23 12:05:41
46
原创 2025.05.21-华子留学生暑期实习第三题-300分
文章摘要: K小姐计划挑战一座神秘山峰,山峰地图为一个二维数组,每个点代表海拔高度。她只能向上下左右移动,且移动时高度差不能超过她的攀爬能力。从山脚(高度为0)出发,目标是到达山顶(最高点),求最少移动次数,若无法到达则返回-1。该问题可通过广度优先搜索(BFS)解决,通过队列记录搜索路径,并检查每一步的高度差是否满足条件。时间复杂度为O(R×C),空间复杂度为O(R×C),其中R和C为地图的行数和列数。
2025-05-23 12:03:04
229
原创 2025.05.21-华子留学生暑期实习第二题-200分
本文介绍了如何为智能高速公路上的用户规划最佳基站连接方案。问题描述中,高速公路上的每个路口都安装了一个基站,基站的信号覆盖范围为前后各 $k$ 个路口。用户设备应自动连接到覆盖范围内连接人数最少的基站,以提供最佳通信体验。 输入格式:第一行为基站连接人数的数组,第二行为基站的覆盖范围 $k$。输出格式:返回一个数组,表示每个路段上最佳基站的编号。 算法思路:该问题可以转化为滑动窗口最小值问题。通过双端队列(deque)维护当前窗口内的最小连接人数基站,确保在每个路段上快速找到最优基站。算法的时间复杂度为 $
2025-05-23 12:02:18
32
原创 2025.05.21-华子留学生暑期实习第一题-100分
本文介绍了如何解决一个关于量子计算芯片功率等级分配的问题。问题要求找到不超过给定数 $n$ 的最大"稳定功率档位",且该档位的数位和为质数。"稳定功率档位"定义为数字从左到右非递减。文章详细描述了问题的输入输出格式、样例解释以及数据范围,并提供了使用数字DP(Digit DP)的解题思路。通过预处理质数、设计记忆化搜索状态,并在搜索过程中尝试填入符合条件的最大数字,最终重建并输出答案。文章还提供了Python、C++和Java的参考代码,帮助读者理解和实现该算法。
2025-05-23 12:01:40
41
原创 2025.05.21华为暑期实习机考真题解析第三题
本文介绍了如何优化GPU资源租赁问题,以最大化云计算服务商的收益。问题描述中,公司拥有多个GPU核心,需在有限资源下选择最优客户组合,确保总租金收入最大化。规则包括:最多同时分配M个GPU核心,客户需求不重叠,且每个客户要么全部满足需求,要么完全不选择。输入格式包括M、N、R及每位客户的时间段需求,输出为最大租金。 解题思路包括: 离散化处理时间点:收集所有时间段的起点和终点,排序并去重,得到关键时间点。 预处理客户需求:计算每个客户在每个离散区间内的GPU核心需求及总租金贡献。 枚举客户组合:由于客户数量
2025-05-21 21:16:27
736
原创 2025.05.21华为暑期实习机考真题解析第二题
摘要: 本文介绍了如何解决灾区物资调度路径规划问题。问题要求在自然灾害后,从物资集结点到指定受灾乡镇的最短路径长度。输入包括乡镇数量、距离矩阵和目标乡镇编号,输出为最短路径长度。通过分析,该问题可转化为无向带权图的最短路径问题,适合使用Dijkstra算法求解。文章详细解释了Dijkstra算法的步骤,并提供了Python、C++和Java的参考代码。由于节点数量较少(最多21个),基本Dijkstra算法的时间复杂度为O(V²),足以高效解决问题。
2025-05-21 21:15:52
570
原创 2025.05.21华为暑期实习机考真题解析第一题
本文介绍了一个智能云任务分发系统的设计与实现。系统支持两种操作:添加任务和执行任务。任务根据优先级和到达顺序进行调度,优先级数值越小越优先,同优先级任务按到达顺序执行。执行任务时,系统从队列中取出任务并执行,若任务未完成则重新加入队列。系统通过优先队列(堆)实现任务调度,确保高效处理任务。文章提供了Python、C++和Java的参考代码,详细解释了算法的时间复杂度,并通过样例输入输出展示了系统的运行逻辑。该设计适用于大规模任务调度场景,能够有效处理高并发任务。
2025-05-21 21:15:14
570
原创 2025.05.17得物机考笔试真题第三题
文章介绍了如何判断商品价格序列是否有序的问题。K小姐作为电商平台的数据分析师,需要分析价格序列是否单调递增或递减。输入包括序列长度和价格序列,输出为“sorted”或“unsorted”。解题思路是通过遍历序列,检查相邻元素的大小关系,维护递增和递减的标志变量。如果序列满足单调性,则输出“sorted”,否则输出“unsorted”。文章还提供了Python、C++和Java的参考代码,展示了如何实现这一逻辑。算法的时间复杂度为O(n),空间复杂度为O(1)。
2025-05-18 18:14:54
69
原创 2025.05.17得物机考笔试真题第二题
《魔法消除》是一款字符串消除游戏,玩家通过点击消除相邻的两个相同字符,目标是将字符串变得尽可能短。题目要求输出最终消除后的字符串,若为空则输出0。解题思路是使用栈模拟消除过程:遍历字符串,若当前字符与栈顶字符相同则弹出栈顶,否则压入栈中。最终栈中剩余的字符即为结果。该算法的时间复杂度和空间复杂度均为O(n),适用于字符串长度不超过300,000的情况。参考代码提供了Python、C++和Java的实现。
2025-05-18 18:14:21
240
原创 2025.05.17得物机考笔试真题第一题
LYA 需要从第 1 块浮石跳到第 $n$ 块浮石,每块浮石上的魔法数字 $a_i$ 决定了她的跳跃范围。正数 $a_i$ 允许她向前跳,负数 $a_i$ 则允许她向后跳。每次跳跃消耗 1 单位时间,目标是找到最短时间到达终点,若无法到达则输出 -1。该问题可以转化为图论中的最短路径问题,使用广度优先搜索(BFS)算法求解。通过构建有向图,BFS 能够高效地找到从起点到终点的最短路径。代码实现中,使用队列进行 BFS 遍历,并记录每个节点的最短距离,最终输出终点的距离或 -1。
2025-05-18 18:13:46
134
原创 2025.05.17淘天机考笔试真题第三题
摘要 K小姐设计的树形公园由多个花坛组成,每个花坛中的花朵数量为整数。她的目标是通过删除若干条连接花坛的小路,将公园分割成多个独立区域,使得每个区域内的花朵总数都是偶数。问题要求计算对于每个$k (1 \leq k \leq n-1)$,删除$k$条小路后满足条件的方案数。若总奇数花坛数为奇数,则无解;否则,通过DFS计算每个子树中的奇数花坛数量,并确定“好边”(删除后两侧连通块奇数花坛数均为偶数的边)。最终方案数为从“好边”中选$k$条的组合数。时间复杂度为$O(n)$。
2025-05-17 18:52:33
724
原创 2025.05.17淘天机考笔试真题第二题
本文介绍了如何构造一个音律序列,使得相邻音符的音高差形成一个等差数列。给定音符数量 ( n ) 和公差 ( k ),要求判断是否存在这样的序列,并输出符合条件的排列。通过分析,发现只有当 ( k = 1 ) 或 ( k = -1 ) 时,才能构造出合法的序列。对于 ( k = 1 ),可以从中间元素开始交替向两边扩展;对于 ( k = -1 ),可以从一端开始交替向另一端构造。文章提供了 Python、C++ 和 Java 的参考代码,帮助读者实现这一算法。
2025-05-17 18:49:11
83
原创 2025.05.17淘天机考笔试真题第一题
本文介绍了如何构造一个满足特定条件的“魔法棋盘”。棋盘由 $2 \times n$ 的格子组成,每行必须包含 $1$ 到 $n$ 的所有数字,且相邻格子中的数字必须互质。通过利用相邻整数互质的性质,提出了一种简单的构造方法:第一行按自然顺序排列,第二行循环右移一位。该方法的时间复杂度为 $O(n)$,适用于 $1 \leq n \leq 10^5$ 的范围。文章还提供了 Python、C++ 和 Java 的参考代码,展示了如何实现这一构造过程。
2025-05-17 18:47:33
82
原创 2025.05.14华为机考笔试题-第三题-300分
本文介绍了卢小姐在灾后物资分配中心的工作场景,提出了一种基于滑动窗口算法的物资分配优化系统。该系统通过处理援助点提供的物资车数和灾民需求队列,寻找需求总和不超过当前物资的最长连续子队伍进行分配。文章详细描述了输入输出格式、样例解释、数据范围以及解题思路,并提供了Python和C++的参考代码。核心思想是通过滑动窗口方法动态调整子序列范围,确保高效分配物资并减少等待队伍长度。最终输出分配次数和未分配到物资的灾民数。该方法的时间复杂度为O(n * m),适用于大规模数据处理。
2025-05-15 15:46:03
1375
原创 2025.05.14华为机考笔试题-第二题-200分
摘要 探险家A先生需要穿越一个$k \times k$的山地区域,从左上角出发,到达右侧边界。移动规则包括只能向右或向下移动,相邻位置高度差不超过1,且经过每个位置会消耗对应体力值。目标是找到最省体力的路径。输入为矩阵大小$k$和高度矩阵,输出为最小体力消耗值,若无可行路径则返回-1。解题思路采用动态规划,定义状态$dp[i][j]$为到达位置$(i,j)$的最小体力值,通过遍历矩阵更新状态。最终在最右侧列中寻找最小值作为答案。时间复杂度为$O(k^2)$,空间复杂度为$O(k^2)$。代码实现包括Pyth
2025-05-15 13:25:21
1012
原创 2025.05.14华为机考笔试题-第一题-100分
文章摘要:本文介绍了一个优先级任务调度系统的设计与实现。系统支持添加任务、执行高优先级任务和更新任务优先级三种操作。通过使用优先队列或有序集合来维护任务池,确保任务按优先级排序。添加操作将任务加入池中,更新操作重新调整任务优先级并恢复已执行任务,执行操作则取出并移除最高优先级的任务。文章提供了Python和C++的参考代码,并分析了时间复杂度。系统适用于需要动态调整任务执行顺序的场景,如大厂笔试中的任务调度问题。
2025-05-15 13:24:36
319
原创 2025.05.11拼多多机考真题算法岗-第四题
这个题目的关键在于理解元素之间的依赖关系,并使用并查集高效地构建依赖图,再通过树形DP计算可能的插入序列数量。卢小姐正在开发一款名为"记忆碎片"的游戏,玩家需要分析混乱的记忆数据,推测出形成这些记忆的原始序列。她想知道有多少种可能的存储记忆碎片的顺序,使得最终形成的记忆数据与给定的数组完全一致。这个题意很复杂,但本质上是在问:对于一个哈希表的最终状态,有多少种不同的插入顺序可以得到这个状态?举个例子:在样例1中,元素 7 存储在位置 0,而它的理想位置是。,表示游戏中的记忆数据,其中。
2025-05-13 17:50:26
385
原创 2025.05.11拼多多机考真题算法岗-第三题
本文介绍了智能城市资源调度系统中的死锁检测问题。系统管理多个服务模块,每个模块持有和等待特定资源,运行后释放资源。当多个模块互相等待资源时,可能发生死锁。问题要求找出处于死锁状态的模块。通过模拟资源分配过程,使用类似银行家算法的策略,逐步满足模块的资源需求,并标记无法运行的模块。算法的时间复杂度为O(m × (n log n)),适用于大规模数据。最终输出死锁模块的数量及其编号。
2025-05-13 16:51:46
273
原创 2025.05.11拼多多机考真题算法岗-第二题
本文介绍了如何通过贪心算法解决代码块解析器问题,目标是计算处理由括号组成的字符串的最小操作次数。操作包括读取单个字符或一次性读取一个有效的括号子串。解题思路是从字符串左侧开始,尽可能找到最长的有效括号子串,将其作为一个整体处理,减少操作次数。对于无法构成有效子串的字符,则逐个处理。算法使用计数器判断子串是否有效,时间复杂度为O(n²),适用于字符串长度不超过10,000的情况。文章还提供了Python、C++和Java的参考代码实现。
2025-05-13 16:50:13
76
原创 2025.05.11拼多多机考真题算法岗-第一题
本文介绍了一个关于图书馆藏书排序管理的问题。K小姐需要将图书馆的书籍按照特定规则排序,规则是先按书名长度比较,长度相同则按字典序比较。给定若干组测试数据,每组数据包含一个书籍序列,要求计算该序列中最长的有序连续子序列的长度。文章详细描述了问题的输入输出格式、样例解释以及数据范围,并提供了题解思路和参考代码(Python、C++、Java)。题解的核心思路是通过一次遍历数组,检查相邻元素是否满足排序条件,从而找到最长的有序子序列。该算法的时间复杂度为O(n),空间复杂度为O(1),能够高效处理所有测试用例。
2025-05-13 16:48:12
99
原创 2025.05.10京东机考真题算法岗-第三题
文章摘要: 本文介绍了一个动态规划问题,描述了一位忍者LYA在两排不同高度的房屋之间进行飞檐走壁训练的情景。LYA可以通过六种移动方式在不同房屋之间移动,每种方式消耗的时间不同。目标是找到从最左侧房屋到最右侧房屋的最短时间路径。文章详细分析了问题的状态定义、状态转移方程以及实现细节,并提供了Python、C++和Java的参考代码。通过动态规划算法,可以在O(n)的时间复杂度内解决该问题,适用于大规模数据范围。
2025-05-13 16:42:49
85
原创 2025.05.10京东机考真题算法岗-第二题
A先生每天需从n个任务中选择一个完成,初始每个任务耗时1小时。公司每天会调整某个任务的耗时,增加c小时。A先生每天选择耗时最短的任务,以尽早下班。问题要求每次调整后,输出当天最早下班时间。 解题思路是维护一个有序数据结构(如multiset或TreeSet),存储所有任务的耗时。每次调整时,更新任务的耗时,并快速找到最小值。时间复杂度为O((n+m) log n),适用于n, m < 10^5的情况。参考代码提供了Python、C++和Java的实现,展示了如何通过有序集合高效处理任务耗时的更新和查询
2025-05-13 16:34:07
94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人