- 博客(1336)
- 收藏
- 关注

原创 2025 A卷 机试真题目录+算法分类+在线评测+视频讲解
**2024年8月份,华为官方已经将华为OD机考:OD统一考试(D卷)切换到 OD统一考试(E卷)** 。从参加过华为OD笔试的朋友来看,**E卷的新题非常少,大部分是A,B,C,D卷的合并题库。** 另一方面据考生反应需要双机位,也就是在牛客小程序中一直点确认,最后一步需要调试并开启您的摄像头。
2023-11-30 14:28:44
53898
24
原创 【2025年蚂蚁集团春招-算法岗-5月18日-第三题(300分)- 小红的字符串构造】(题目+思路+Java&C++&Python解析+在线测试)
题目要求构造一个01串,使得其每个前缀的权值(长度为3的回文子序列数量)与给定数组对应。解题思路是通过贪心算法,依次决定每个位置的字符,确保每一步的增量与目标一致。具体步骤包括计算目标增量、判断选择0或1时的增量是否匹配,并更新相关计数和下标和。若过程中出现不匹配,则判定无解。代码实现中,前两位前缀的权值必须为0,否则直接输出-1。整体时间复杂度为O(n),空间复杂度为O(n)。
2025-05-18 21:32:09
14
原创 【2025年蚂蚁集团春招-算法岗-5月18日-第二题(200分)- 图像聚类】(题目+思路+Java&C++&Python解析+在线测试)
本文介绍了一个图像特征降维与聚类系统的实现方法。系统首先读取输入的三维列表表示的图像数据,将其展开为二维矩阵。接着,使用PCA算法将图像数据从多通道降维到二维空间。然后,利用K-Means算法对降维后的数据进行聚类,将数据分为3类。最后,系统输出每个像素点的聚类标签,并将其重塑为原图的高×宽格式逐行输出。代码实现中使用了Python的numpy和scikit-learn库,确保了算法的可复现性和高效性。
2025-05-18 21:22:01
14
原创 【2025年蚂蚁集团春招-算法岗-5月18日-第一题(100分)- 数组操作】(题目+思路+Java&C++&Python解析+在线测试)
题目要求将给定数组变为“好数组”,即对于所有下标$i$,满足$|a_i - i|$相等。通过每次对数组元素加1或减1,求最少操作次数。解题思路是枚举可能的$k$值($0 \le k \le n-1$),计算每个$k$下将数组变为“好数组”所需的总操作次数,取最小值作为答案。具体步骤包括:对于每个$k$,计算每个位置$i$变为$i+k$或$i-k$的代价,累加所有位置的代价,最终选择最小的总代价。时间复杂度为$O(n^2)$,适用于$n \le 1000$的情况。代码实现提供了Python、Java和C++的
2025-05-18 21:19:42
14
原创 【2025年菜鸟暑期实习(算法岗)-5月18日-第三题-300分)- 小红的red权值】(题目+思路+Java&C++&Python解析+在线测试)
题目要求计算字符串中所有“red”子序列的权值之和,其中权值定义为子序列中字符位置差的绝对值之和。通过化简权值公式,发现权值可以表示为2*(k−i),其中i和k分别是“r”和“d”的位置,且中间存在至少一个“e”。解题思路包括在线统计“r”和“d”的位置信息,并利用前缀和快速计算中间“e”的数量。最终,通过遍历字符串,累加所有符合条件的“red”子序列的权值。代码实现包括Python、Java和C++版本,时间复杂度为O(n),空间复杂度为O(n)。
2025-05-18 19:56:14
4
原创 【2025年菜鸟暑期实习(算法岗)-5月18日-第二题(200分)- 样本的Gini指数计算】(题目+思路+Java&C++&Python解析+在线测试)
本文介绍了如何计算数据集中每个特征的基尼指数,并选择基尼指数最小的特征。基尼指数是决策树算法中用于特征选择的重要指标,计算公式为加权各特征取值子集的基尼值。算法流程包括对每个特征进行分组、计算子集基尼值,并加权求和得到特征基尼指数。最终输出基尼指数最小的特征索引及其基尼值。代码实现中,通过遍历数据集,按特征值分组并统计标签分布,计算基尼指数,最终选择最优特征。时间复杂度为O(mn),空间复杂度为O(n)。
2025-05-18 19:54:28
6
原创 【2025年菜鸟暑期实习(算法岗)-5月18日-第一题(100分)- 栈元素排序】(题目+思路+Java&C++&Python解析+在线测试)
摘要 题目要求通过栈操作依次弹出1到n的元素,允许在每次push操作后对栈内元素进行重新排序(从栈顶到栈底按从小到大排序)。目标是找到最少的排序次数,确保能够按顺序弹出1到n。通过模拟栈的操作,每次pop时检查栈顶元素是否为当前期望的最小值,若不符合则进行排序,并记录排序次数。最终输出最少的排序次数。
2025-05-18 19:53:26
4
原创 【2025年阿里淘天暑期实习(算法岗) - 5月17日 -第三题(300分)- 连通块】(题目+思路+Java&C++&Python解析+在线测试)
文章摘要 题目要求将一棵树通过删除若干条边分割为多个连通块,使得每个连通块的节点权值之和为偶数。对于每个$k(1 \le k \le n-1)$,需要计算删除$k$条边后满足条件的方案数。若不存在满足条件的方案,则输出$0$。解题思路包括:首先通过DFS计算每个子树的权值和,统计可切边的数量;若整棵树的总权值和为奇数,则无解;否则,通过组合数计算从可切边中选择$k$条边的方案数。最终输出每个$k$对应的方案数,结果对$10^9+7$取模。
2025-05-17 21:31:34
123
原创 【2025年阿里淘天暑期实习(算法岗) - 5月17日 -第二题(200分)- 排列构造】(题目+思路+Java&C++&Python解析+在线测试)
题目要求构造一个长度为$n$的排列$p$,使得其相邻元素的绝对差值序列$a$是一个公差为$k$的等差数列。通过分析,只有当$k$为$-1$、$0$或$1$时,才存在满足条件的排列。具体构造方法如下: $k=0$:直接输出$1$到$n$的升序排列,差值序列全为$1$,公差为$0$。 $k=-1$:交替从两端取数,构造差值序列为$n-1, n-2, \dots, 1$,公差为$-1$。 $k=1$:先按照$k=-1$的方法构造排列,再将其逆序,得到差值序列为$1, 2, \dots, n-1$,公差为$1$。
2025-05-17 21:30:27
23
原创 【2025年阿里淘天暑期实习(算法岗) - 5月17日 -第一题(100分)- 小红的矩阵】(题目+思路+Java&C++&Python解析+在线测试)
给定整数 ( n ),要求构造一个 ( 2 \times n ) 的“好矩阵”,满足以下条件: 每一行都是 ( [1, n] ) 的排列; 任意相邻元素(水平或垂直)的最大公约数为 1。 通过利用连续整数互质的性质,可以构造如下矩阵: 第一行:( 1, 2, \dots, n ) 第二行:( 2, 3, \dots, n, 1 ) 这种构造保证了相邻元素互质,且时间复杂度为 ( O(n) ),空间复杂度为 ( O(n) )。代码在 C++、Python 和 Java 中均实现了该构造方法。
2025-05-17 21:29:01
24
原创 【2025年阿里淘天暑期实习(开发岗) - 5月17日 -第三题(300分)- 小苯的字符串】(题目+思路+Java&C++&Python解析+在线测试)
题目要求通过最少的修改次数,使得小苯的01串$x$满足格格串$y$的匹配规则。具体规则为:若$y_i=1$,则$x_i$和$x_{i+1}$必须不同;若$y_i=0$,则$x_i$和$x_{i+1}$必须相同。解题思路是枚举$x_1$的两种可能值(0或1),然后根据$y$串递推生成目标串$t$,并统计$x$与$t$的差异次数,取最小值即为答案。该方法的时间复杂度为$O(n)$,适用于大规模数据。代码实现提供了C++、Python和Java三种语言的版本。
2025-05-17 21:27:34
91
原创 【2025年阿里淘天暑期实习(开发岗) - 5月17日 -第二题(200分)- 记忆碎片】(题目+思路+Java&C++&Python解析+在线测试)
摘要: 题目要求将一组记忆碎片按时间顺序排列,每次交换两块时间差不超过$k$的碎片。若时间差为1,则消耗1点精力;若时间差大于1且不超过$k$,则不消耗精力。目标是找到最少消耗的精力。当$k \geq 3$时,所有交换均可免费完成,消耗精力为0;当$k \leq 2$时,只需统计相邻时间对逆序的次数,即为所需的最小精力。算法时间复杂度为$O(n)$,适用于大规模数据。
2025-05-17 21:26:14
6
原创 【2025年阿里淘天暑期实习(开发岗) - 5月17日 -第一题(100分)- 最长字符串】(题目+思路+Java&C++&Python解析+在线测试)
题目要求构造一个字符串,使得任意两个相邻字母都不相同,并求出最长字符串的长度。给定每种小写字母的数量,通过计算总字母数 ( S ) 和最大字母数 ( M ),可以得出最长字符串的长度为 ( \min(S, 2(S - M) + 1) )。具体实现包括读取输入数据、计算 ( S ) 和 ( M ),并根据公式输出结果。代码提供了 C++、Python 和 Java 的实现示例。
2025-05-17 21:24:48
6
原创 【2025年华为暑期实习-5月14日-第三题(300分)- 救灾物资快速分配方案】(题目+思路+Java&C++&Python解析+在线测试)
在地震灾区,多个市派出车队运送物资,每个市提供的物资车数不同,灾区营地中多人排队领取物资。为尽快缩减排队长度,制定了一套发放规则:每次将当前市车队的物资分配给需求和不超过该物资的最长连续子序列,若无法分配则累加下一市车队的物资。最终统计分配次数和未分配到物资的人数。通过滑动窗口算法寻找最长子序列,时间复杂度为O(mn),在给定数据范围内可接受。
2025-05-15 10:16:25
332
原创 【2025年华为暑期实习-5月14日-第二题(200分)- 游戏中的地图穿越】(题目+思路+Java&C++&Python解析+在线测试)
给定一个大小为 ( k \times k ) 的二维矩阵 map[][],表示地形高度,角色从左上角 ((0,0)) 出发,只能向右或向下移动,且相邻节点高度差不能超过 1。角色经过每个节点时会消耗相应的体力值。要求找到从起点到矩阵右侧任意位置的最省体力路径,并输出最小体力消耗。若不存在可行路径,返回 -1;若参数不合法(如 ( k ) 超出范围或高度值不在 ([0,10]) 内),返回 -2。解题思路:参数校验:检查 ( k ) 和高度值的合法性。动态规划:定义 ( dp[i][j] ) 表示从起
2025-05-15 10:14:27
112
原创 【2025年华为暑期实习-5月14日-第一题(100分)- AI算法训练中的动态优先级经验回放】(题目+思路+Java&C++&Python解析+在线测试)
在AI算法训练中,经验回放机制通过存储和重用过去的经验数据来提高训练效率,节省算力资源。为了进一步优化,优先级经验回放根据每个经验的TD误差动态调整其采样优先级。题目要求设计一个高效的数据结构,支持插入经验、提取优先级最高的K个经验以及更新经验优先级的操作。通过使用最大堆和哈希表,结合延迟删除和版本号机制,可以高效地实现这些操作。插入和更新操作的复杂度为O(log M),提取操作的复杂度为O((K + V)log M),其中M为堆大小,V为延迟删除的节点数。整体复杂度为O(N log N),适用于N ≤ 1
2025-05-15 10:12:25
248
原创 【2025年阿里国际暑期实习(开发岗) - 5月12日 -第三题(300分)- 好联通块】(题目+思路+Java&C++&Python解析+在线测试)
实现:通过栈模拟 DFS 遍历树,避免递归深度过深,确保算法高效运行。
2025-05-15 10:10:53
90
原创 【2025年阿里国际暑期实习(开发岗) - 5月12日 -第二题(200分)- 好位置】(题目+思路+Java&C++&Python解析+在线测试)
题目要求构造一个与原排列 $p$ 不同且“好位置”个数相同的排列 $q$。通过分析,当排列长度 $n < 3$ 时,无法构造满足条件的 $q$,直接输出「NO」。对于 $n \geq 3$ 的情况,寻找最右侧的下降点,并在其附近进行一次交换,确保 $q$ 与 $p$ 不同且“好位置”数不变。若找不到下降点,则输出「NO」。通过这种局部交换的方式,能够高效地构造出满足条件的排列 $q$。
2025-05-15 10:08:50
12
原创 【2025年阿里国际暑期实习(开发岗) - 5月12日 -第一题(100分)- 魔法环交替求和问题】(题目+思路+Java&C++&Python解析+在线测试)
小红有一个长度为 $n$ 的魔法环,环上依次有数字 $a_1, a_2, \dots, a_n$。她希望通过选择一个断开位置 $k$,将环切开为线性序列,并计算其交替求和 $S = b_1 - b_2 + b_3 - \dots + (-1)^{n-1}b_n$,以找到最大的 $S$ 值。直接对每个 $k$ 计算 $S$ 的复杂度为 $O(n^2)$,无法满足 $n \leq 2 \times 10^5$ 的要求。通过推导递推关系,可以在 $O(1)$ 时间内从 $S_k$ 更新到 $S_{k+1}$,从而
2025-05-15 10:07:00
9
原创 【25年荣耀暑期实习-(开发岗)-5月12日-第三题(300分)- 分圣诞礼物】(题目+思路+Java&C++&Python解析+在线测试)
本文介绍了如何将 n 件无差别的礼物分给 k 个小朋友的问题。通过递归与回溯的方法,生成所有可能的分配方式,并输出分配总数及每种分法。每种分法用 * 表示礼物,| 分隔不同的小朋友。代码实现包括 Python、Java 和 C++ 版本,适用于小规模输入(n 和 k 的上限为 10)。时间复杂度为 O(n^k),空间复杂度为 O(k)。
2025-05-12 21:10:08
113
原创 【25年荣耀暑期实习-(开发岗)-5月12日-第二题(200分)- 自驾过路费】(题目+思路+Java&C++&Python解析+在线测试)
小红计划自驾游到某一著名景点,需要从左上角出发,目的地为右下角。她收集了多条路径的过路费信息,希望找到一条最经济的路径。该问题可以转化为在给定的费用网格中,从起点到终点的最小路径和问题。通过动态规划,定义 dp[i][j] 表示从起点到 (i,j) 的最小费用,状态转移方程为 dp[i][j] = grid[i][j] + min(dp[i-1][j], dp[i][j-1])。最终答案为 dp[M-1][N-1]。代码实现中,使用滚动数组优化空间复杂度为 O(N)。输入为费用网格,输出为最小过路费。
2025-05-12 21:09:07
82
原创 【25年荣耀暑期实习-(开发岗)-5月12日-第一题(100分)- 报文转义】(题目+思路+Java&C++&Python解析+在线测试)
该题目要求实现报文转义功能,处理16进制格式的报文。报文的第一个字节表示报文长度(包括该字节),但不参与转义。当报文中的字节为 0x0A 时,转义为 0x12 0x34;当字节为 0x0B 时,转义为 0xAB 0xCD;其他字节保持不变。转义后的报文第一个字节为转义后的报文长度,输出为大写的16进制格式,字节间用空格隔开。解题思路包括解析输入、应用转义规则、输出转义后的报文。代码实现提供了Python、Java和C++的示例,展示了如何读取输入、处理转义规则并输出结果。
2025-05-12 21:07:46
102
原创 【2025年拼多多暑期实习(算法岗)-5月11日-第四题(400分)- 哈希表实现】(题目+思路+Java&C++&Python解析+在线测试)
该问题要求计算能够生成给定哈希表状态的合法插入序列的数量。哈希表使用线性探测法处理冲突,插入时从哈希函数计算的位置开始,向右循环查找第一个空位插入。输入包括哈希表长度 $n$ 和一个长度为 $n$ 的数组,其中 $-1$ 表示空位,其他数字两两不相等且合法。输出为符合条件的插入序列数量,结果对 $998244353$ 取余。解决方案需要分析每个元素的插入顺序约束,并利用组合数学计算可能的序列数。例如,样例1中合法的插入序列有3种,样例2中有648种。
2025-05-11 21:14:19
26
原创 【2025年拼多多暑期实习(算法岗)-5月11日-第三题(300分)- 资源最优分配】(题目+思路+Java&C++&Python解析+在线测试)
本文介绍了计算机进程在运行过程中可能出现的死锁问题,并提供了相应的解决算法。死锁发生在多个进程循环等待资源,无法继续执行的状态。给定 $n$ 个进程和 $m$ 种资源,每个进程持有和等待一定数量的资源。当资源不足以满足进程需求时,进程进入等待状态。通过模拟资源分配和释放的过程,算法可以确定哪些进程最终处于死锁状态。具体步骤包括初始化可用资源,计算每个进程的等待资源需求,模拟进程执行并释放资源,最终筛选出无法执行的死锁进程。该算法的时间复杂度为 $O(\sum h_i + \sum w_i + n + m)$
2025-05-11 21:13:10
22
原创 【2025年拼多多暑期实习(算法岗)-5月11日-第二题(200分)- 有效括号子串】(题目+思路+Java&C++&Python解析+在线测试)
摘要: 多多君需要处理一个由左括号 '(' 和右括号 ')' 组成的字符串,每次可以读取一个字符或一个有效括号子串,目标是求最小处理次数。有效括号子串需满足括号成对闭合且正确嵌套。通过贪心策略,每次尽可能读取最长的有效子串,若无法读取则单读一个字符。算法通过维护括号平衡度和记录有效子串的末端位置,确保每次操作的最优性。最终输出最小处理次数。
2025-05-11 21:09:31
26
原创 【2025年拼多多暑期实习(算法岗)-5月11日-第一题(100分)- 单调不降连续子数组】(题目+思路+Java&C++&Python解析+在线测试)
多多君研究字符串数组的单调性,定义单调不降的条件为:相邻字符串按长度比较,长度更长的更大;若长度相等,则按字典序比较。给定多组测试数据,每组包含一个字符串数组,要求计算其中最长的单调不降连续子数组的长度。解题思路是遍历数组,比较相邻字符串,若满足单调不降条件则增加当前子数组长度,否则更新最大长度并重置计数器。最终输出每组数据的最大长度。代码实现包括C++、Python和Java版本,均通过遍历和比较操作完成计算。
2025-05-11 21:08:26
15
原创 【2025年阿里云暑期实习(算法岗)-5月11日-第三题(300分)- 消灭怪兽】(题目+思路+Java&C++&Python解析+在线测试)
给定一个nn行mm 列的网格,且保证n,mn,m都为偶数。我们用(i,j)(i,j)表示第ii行第jj列的单元格。每个单元格要么是可通行的空方格00,要么是不可通行的地雷方格11。网格的四周都是墙,你可以在空方格上上下左右移动:从$ (x,y) 向上移动到向上移动到(x- 1,y)$;向下移动到(x+1,y)(x+1,y);向左移动到(x,y−1)(x,y−1);向右移动到$ (x,y+1)$。
2025-05-11 17:40:36
15
原创 【2025年阿里云暑期实习(算法岗)-5月11日-第二题(200分)- 时间序列】(题目+思路+Java&C++&Python解析+在线测试)
本文介绍了如何计算时间序列数据的自相关函数。自相关函数$\rho(h)$用于衡量时间序列在不同滞后$h$下的相关性,计算公式为$\rho(h)=\frac{E[(X_{t+h}-\mu)(X_t-\mu)]}{\sigma^2}$,其中$\mu$为序列均值,$\sigma^2$为方差。文章提供了Python实现代码,计算过程包括:1) 计算序列均值;2) 计算方差;3) 对每个滞后$h$计算自相关系数,并将结果保留三位小数。代码能够处理任意长度的输入序列,并对滞后大于序列长度的情况返回0。时间复杂度为$O(
2025-05-11 17:37:41
26
原创 【2025年阿里云暑期实习(算法岗)-5月11日-第一题(100分)- 小红的魔法环】(题目+思路+Java&C++&Python解析+在线测试)
小红有一个长度为$n$的魔法环,环上依次有数字$a_1,a_2,...,a_n$。她希望通过切开魔法环并对线性序列应用加权交替求和,得到最终魔法值。操作步骤包括选定一个断开位置$k$,将环切开得到线性序列,然后计算加权交替求和$S$。小红希望在所有可能的断开位置中,$S$的值最大。题目要求计算并输出此最大值。解题思路是暴力枚举所有断开位置,计算每个位置的$S$值,取最大值。由于$n\le2000$,暴力法可行。代码实现包括Python、Java和C++版本,均通过枚举断开位置和计算加权交替求和来求解最大值。
2025-05-11 17:36:10
56
原创 【2025年京东暑期实习 - 5月10日 -第三题(300分)- 忍者】(题目+思路+Java&C++&Python解析+在线测试)
本文探讨了一个动态规划问题,涉及忍者在两排房子之间移动的最小时间消耗。题目要求忍者从第一排或第二排的第一个房间出发,到达最后一个房间,且需要在不同路径中选择最优路径以最小化时间消耗。路径选择包括在同一排内移动或跨排跳跃,每种路径都有不同的时间消耗规则。通过定义动态规划状态 dp1[i] 和 dp2[i] 分别表示从第一排和第二排的第 i 个房间出发的最小时间,文章详细推导了状态转移方程,并提供了 Python、Java 和 C++ 的代码实现。最终,通过动态规划的方法,能够在 O(n) 的时间复杂度内求解问
2025-05-11 17:34:35
13
原创 【2025年京东暑期实习 - 5月10日 -第二题(200分)- 每日任务】(题目+思路+Java&C++&Python解析+在线测试)
题目描述小明每天需要完成一个任务才能下班,每个任务的完成时间初始为1。每天会有m次修改,每次修改会增加某个任务的完成时间。要求在每次修改后输出当天所有任务中的最小完成时间。 解题思路是使用最小堆(Min-Heap)来维护任务的完成时间。初始化时将所有任务的完成时间入堆。每次修改时,更新任务的完成时间,并将新值推入堆。通过延迟删除的方式,确保堆顶始终是当前最小的完成时间。最终,每次修改后输出堆顶的值即可。 该算法的时间复杂度为O((n + m)log(n + m)),空间复杂度为O(n + m),适用于n和m
2025-05-11 17:32:58
15
原创 【2025年京东暑期实习 - 5月10日 -第一题(100分)- 消去字符】(题目+思路+Java&C++&Python解析+在线测试)
题目要求从长度为 $n$ 的字符串中删除 $m$ 个字符,使得剩余字符串的字典序最小。通过贪心算法,维护一个栈来存储当前选定的字符。遍历字符串时,若当前字符小于栈顶字符且删除栈顶字符后仍有足够字符组成最终字符串,则弹出栈顶字符,最终栈中的前 $n-m$ 个字符即为字典序最小的结果。算法时间复杂度为 $O(n)$,适合处理大规模数据。代码实现包括 Python、Java 和 C++ 版本,均通过栈结构实现了该逻辑。
2025-05-11 17:31:04
17
原创 【2025年美团暑期实习(技术岗)-5月10日-第三题(300分)- 我们惺惺相惜 】(题目+思路+Java&C++&Python解析+在线测试)
给定一个长度为$n$的数组$a$,定义一个区间$[l,r]$为“好区间”,当且仅当该区间可以被划分为两个非空的严格单调递增子序列。现有$q$次询问,每次给出一个区间$[l,r]$,判断其是否为“好区间”。通过预处理前驱和后继数组,判断区间内是否存在不可划分的三元组,从而快速回答查询。具体实现中,使用栈结构计算每个元素的前驱和后继,并通过辅助数组维护最小值,确保查询时间复杂度为$O(1)$。最终,对于每个查询,若区间内不存在不可划分的三元组,则输出“YES”,否则输出“NO”。
2025-05-10 21:55:07
171
原创 【2025年美团暑期实习(技术岗)-5月10日-第二题(200分)- 小美的陡峭值操作 】(题目+思路+Java&C++&Python解析+在线测试)
题目要求通过最多一次操作(选择一个区间,使区间内所有元素加1)来最小化数组的“陡峭值”,即相邻元素之差的绝对值之和。解题思路如下: 计算初始陡峭值:首先计算未进行任何操作时的陡峭值 ( S = \sum_{i=2}^n |a_i - a_{i-1}| )。 分析操作影响:若对区间 ([l, r]) 进行加1操作,只有区间边界处的差分值会发生变化。具体来说,左边界 ( l ) 的差分值从 ( |a_l - a_{l-1}| ) 变为 ( |a_l + 1 - a_{l-1}| ),右边界 ( r ) 的差分值
2025-05-10 21:54:07
18
原创 【2025年美团暑期实习(技术岗)-5月10日-第一题(100分)- 行走 】(题目+思路+Java&C++&Python解析+在线测试)
题目描述小美在一个无限大的二维坐标系上运动,初始位置为$(x,y)$。她有一个长度为$n$的整数数组${a_1,a_2,\dots,a_n}$,表示每次移动的“距离”。在第$i$次移动时,她需要选择一对整数$(l,r)$满足$|l| + |r| = a_i$,然后将当前位置变为$(x + l, y + r)$。问:经过$n$次移动后,小美能否恰好到达目标位置$(p,q)$? 解题思路: 当$a_i = 0$时,小美只能停在原地;当$a_i = 1$时,她可以上下左右移动一步。 计算所有$a_i$的总和$m$
2025-05-10 21:52:43
21
原创 【2025年得物暑期实习-5月8日-第三题(300分)- 小A改编矩阵】(题目+思路+Java&C++&Python解析+在线测试)
给定一个大小为 (n \times m) 的整数矩阵,每次操作可以选择一个由三个单元格组成的“拐角”形区域(L 形),并对其中所有元素同时加 1 或减 1。目标是将矩阵中所有元素变为 0。判断是否存在一种操作方案。 解题思路: 不变量分析:每次操作会改变三个元素的值,总和增减量为 (\pm3)。因此,矩阵所有元素之和 (\sum_{i,j} a_{i,j}) 对 3 取模是不变的。若最终所有元素都为 0,总和必须满足 (\sum_{i,j} a_{i,j} \equiv 0 \pmod{3})。 边界情况:
2025-05-09 10:00:00
21
原创 【2025年得物暑期实习-5月8日-第二题(200分)- 平方三元组】(题目+思路+Java&C++&Python解析+在线测试)
题目要求找出满足条件的三元组 $(a, b, c)$,其中 $1 \leq a < b < c \leq n$,且 $a \times b$、$b \times c$、$a \times c$ 都是完全平方数。通过分析,发现三元组中的每个数可以表示为 $a = k \cdot x^2$,$b = k \cdot y^2$,$c = k \cdot z^2$,其中 $k$ 是无平方因子的正整数。对于每个无平方因子的 $k$,计算 $m = \lfloor \sqrt{n/k} \rfloor$,然
2025-05-09 09:30:00
23
原创 【2025年得物暑期实习-5月8日-第一题(100分)- 贪吃蛇1.0】(题目+思路+Java&C++&Python解析+在线测试)
小红开发的贪吃蛇游戏版本中,蛇只能向右转弯,形成单螺旋结构。题目要求判断蛇在行走过程中是否会撞到自己的身体。输入包括测试用例数、蛇的节数及每节长度,输出为是否发生碰撞。通过分析蛇的行走轨迹,可以发现蛇的自交情况主要发生在第4条及以后的线段中。具体判断条件包括:第i条线段与第i-3条线段交叉、第i条线段“触碰”第i-4条线段,以及更复杂的包裹式相交。通过遍历线段并检查这些条件,可以在O(N)时间内判断是否发生碰撞。代码实现包括C++、Python和Java版本,均采用上述思路进行判断。
2025-05-09 09:00:00
34
原创 【2025年华为暑期实习(留学生)-5月7日-第三题(300分)- 樱桃等级筛选】(题目+思路+Java&C++&Python解析+在线测试)
某大型樱桃加工厂使用自动化机械扫描了一批樱桃的尺寸大小。现在获得了直径范围LH各个区间所有的樱桃个数统计。现在需要通过m个等级mH−L来筛选不同尺寸大小的樱桃,筛选后需使得各等级内的樱桃数目的标准差最小。
2025-05-08 20:21:22
127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人