自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1510)
  • 收藏
  • 关注

原创 华为校招&实习&留学生机试真题目录+算法分类+在线OJ+通过率+视频讲解

全网最新最全华为校招&实习&留学生机试真题题库

2024-10-18 10:57:57 3000 2

原创 机试真题目录

**2024年8月份,华为官方已经将华为OD机考:OD统一考试(D卷)切换到 OD统一考试(E卷)** 。从参加过华为OD笔试的朋友来看,**E卷的新题非常少,大部分是A,B,C,D卷的合并题库。** 另一方面据考生反应需要双机位,也就是在牛客小程序中一直点确认,最后一步需要调试并开启您的摄像头。

2023-11-30 14:28:44 55655 24

原创 【2025蚂蚁集团秋招-8月24日-第三题(300分)- 数组的优美段】(题目+思路+Java&C++&Python解析+在线测试)

该问题要求将一个数组划分为尽可能多的连续子数组(优美段),每个子数组的GCD不超过其长度。采用贪心策略,从左到右维护当前段的GCD和长度,当满足条件时立即分割。这样能最大化段数,若最后剩余部分无法分割,则合并到前一段而不影响结果。若全程无法分割,则返回-1。算法时间复杂度为O(n log A_max),适用于大规模数据。

2025-08-24 12:04:54 11

原创 【2025蚂蚁集团秋招-8月24日-第二题(200分)- JSON数组】(题目+思路+Java&C++&Python解析+在线测试)

这篇文章解析了一个自注意力机制的计算过程,并提供了Python实现代码。文章首先介绍了自注意力机制的五个关键步骤:1) 计算缩放点积得分;2) 加掩码处理;3) 行级数值稳定的Softmax计算;4) 加权求和;5) 结果展平输出。随后详细解释了每个步骤的数学原理和实现逻辑,包括如何防止数值溢出、掩码的作用机制等。最后给出了完整的Python实现代码,使用NumPy库高效完成矩阵运算,并处理可能的掩码输入。该实现能够正确计算自注意力机制,并按指定格式输出结果,适用于小规模矩阵输入。

2025-08-24 12:04:47 9

原创 【2025蚂蚁集团秋招-8月24日-第一题(100分)- 奇数运算】(题目+思路+Java&C++&Python解析+在线测试)

题目要求对于给定的奇数n,找到正整数对(a,b)满足方程2(a²+b²)-1=n²。通过数学变形可得a²+b²=(n²+1)/2。对于n>1的情况,存在解(a,b)=((n-1)/2, (n+1)/2);当n=1时无解。算法时间复杂度为O(1)每组数据,适用于大输入规模。示例显示n=1时输出-1,n=13时输出(6,7)或(2,9)等解。该解法通过直接计算得出结果,验证了数学推论的正确性。

2025-08-24 12:04:38 10

原创 【2025米哈游秋招-8月24日-第三题(300分)- 前缀旋转最少操作】(题目+思路+Java&C++&Python解析+在线测试)

这篇文章研究了如何通过前缀旋转操作实现字符串的循环左移。给定字符串长度n、k种操作(每种操作将前x_i个字符移动到末尾)和m个目标偏移量y_i,任务是计算每个y_i所需的最少操作次数或判断不可达。 核心思路是将问题建模为图的最短路径问题:每个偏移量作为节点,操作作为边,通过BFS从初始偏移量0出发,计算到达各个y_i的最短路径。具体步骤包括: 初始化距离数组dist,标记0偏移量为0次操作 使用BFS队列,每次取出当前偏移量,尝试所有k种操作生成新偏移量 若新偏移量未被访问过,更新其距离并入队 最后直接查询

2025-08-24 12:04:25 4

原创 【2025米哈游秋招-8月24日-第二题(200分)- 取石子】(题目+思路+Java&C++&Python解析+在线测试)

文章摘要: 该问题是一个博弈论题目,涉及石子堆的取法规则。关键结论是:每堆石子的SG值等于其二进制末尾连续0的个数(即因子2的幂次)。游戏的胜负由所有堆SG值的异或结果决定——若异或非零,先手(米小游)必胜,否则后手(Zeeman)胜。解题时需高效计算SG值,可利用内置函数(如__builtin_ctz或numberOfTrailingZeros)优化。代码实现需处理多组数据,时间复杂度为O(n)每组,适用于大规模输入。

2025-08-24 12:03:18 3

原创 【2025米哈游秋招-8月24日-第一题(100分)- 收集晶体】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目描述了一个游戏惩罚机制的计算问题。玩家在n天内每天有目标收集量a_i和实际收集量b_i。当b_i < a_i时,惩罚取决于累计收集量是否达标:若累计达标则消耗(a_i-b_i)点能量,否则消耗2倍点数。需要计算总惩罚值。 解决方案使用前缀和逐日比较累计值,时间复杂度O(n)。代码实现包括C++、Python和Java版本,通过维护两个前缀和变量来高效计算总惩罚值。样例1输入3天数据输出4,样例2输入5天数据输出8,验证了算法的正确性。

2025-08-24 12:02:08 8

原创 【2025科大讯飞秋招-8月23日-第三题(300分)- 小C的细菌】(题目+思路+Java&C++&Python解析+在线测试)

细菌生命周期查询问题 问题描述 给定n个细菌的生命周期区间[l_i, r_i]和m次查询,每次查询给出时间区间[l, r],要求统计生命周期完全包含在该查询区间内的细菌数量。 解决方法 这是一个典型的二维偏序问题,可以将每个细菌看作平面上的点(l_i, r_i)。查询转化为统计满足l_i ≥ l且r_i ≤ r的点数。 离线处理:将细菌按r_i升序排序,查询也按r升序排序 坐标压缩:对l_i进行离散化处理 树状数组:维护当前已处理的细菌中l_i的分布情况 查询处理:对于每次查询[l,r],先处理所有r_i

2025-08-24 11:51:29

原创 【2025科大讯飞秋招-8月23日-第二题(200分)- 子序列染色】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目要求寻找一个序列中GCD不为1的最长子序列及其方案数。最优解长度等于被某个质数整除的最大元素个数。若最大长度为1,方案数为不同>1元素的个数;否则统计所有能产生该长度的质数,通过计算其GCD的质因子来消除重复方案,等价类数量即为方案数。通过预处理小质数、分解元素质因子并统计覆盖情况,能在合理时间内解决问题。

2025-08-24 11:50:27 1

原创 【2025科大讯飞秋招-8月23日-第一题(100分)- 小红数偶数】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目要求将连续的偶数序列拼接成一个无限长字符串,并找出该字符串的第n个字符。通过分析偶数字符串长度累加规律,可以高效定位目标字符位置,无需实际拼接整个字符串。算法采用逐段累加字符串长度的方法,当累加长度超过n时,即可确定字符在当前偶数字符串中的具体位置。该方法时间复杂度为O(n),空间复杂度为O(1),适用于大范围的输入值(1 ≤ n ≤ 10^5)。 样例1输入6,输出1,对应字符串"024681"的第6个字符;样例2输入1,输出0,对应字符串首字符。

2025-08-24 11:49:31 1

原创 【2025小米秋招-8月23日-第一题(100分)- 静止俄罗斯方块】(题目+思路+Java&C++&Python解析+在线测试)

题目摘要: 给定一个初始高度非降的方块序列,处理m个从左侧下落的矩形方块。每个方块会停在对应宽度区间内的最高现有高度处,并抬高该区间的高度。要求输出每个方块下落后的底部高度。 关键点: 初始高度数组a非降序排列 每个方块下落时,其底部高度等于当前区间[1,w]的最高高度(max(a[w], 当前平台高度base)) 放置后将该区间统一抬高h个单位高度 使用变量base记录当前被抬高的平台高度 解法:维护一个base变量表示当前平台高度,对于每个方块,计算ans=max(a[w], base),输出后更新ba

2025-08-24 11:48:15 4

原创 【2025哔哩哔哩秋招-8月23日-第二题(200分)- 逆序对】(题目+思路+Java&C++&Python解析+在线测试)

题目摘要 给定一个排列p={1,2,...,n},要求重新排列使其恰好包含k个逆序对。逆序对定义为i<j且a_i>a_j的有序对(i,j)。采用贪心算法,每一步选择当前最大或最小数放置:当剩余需要的逆序对数k≥当前最大数能贡献的逆序对数量时,就放置最大数并减少k值;否则放置最小数。该策略能确保最终排列恰好包含k个逆序对。输入为n和k,输出任意一个满足条件的排列。

2025-08-24 11:46:20 2

原创 【2025哔哩哔哩秋招-8月23日-第一题(100分)- 求平方根】(题目+思路+Java&C++&Python解析+在线测试)

本题要求实现一个计算整数平方根(向下取整)的函数mysqrt(x)。采用二分查找方法,在可能的解空间内高效搜索。初始时,对于x≥2的情况,解空间设置为[1, x/2+1];x<2时直接返回x。通过比较中点mid与x/mid的关系来避免乘法溢出,并根据比较结果调整搜索范围。最终返回满足条件的最大整数解。该方法保证了O(logx)的时间复杂度和O(1)的空间复杂度。代码提供了C++、Python和Java三种语言的实现版本,均遵循相同算法逻辑。

2025-08-24 11:45:18 3

原创 【2025小米秋招-8月23日-第二题(200分)- 登山鞋】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目要求计算小红在最多修改k座山高度的情况下,所需登山鞋的最低耐久度x,使得相邻山的高度差不超过x。通过二分查找确定x的最小值,对于每个x,使用动态规划判断是否存在至少n-k座山满足相邻差值约束。时间复杂度为O(Tn^2logR),其中T是测试用例数,n是山的数量,R是最大高度差。

2025-08-24 11:42:28 4

原创 【2025小米秋招-8月23日-第一题(100分)- 深海探险】(题目+思路+Java&C++&Python解析+在线测试)

本文提出了一种高效的双指针算法来解决船只沉没问题。通过维护左右指针和当前攻击方向,可以快速计算每次攻击后沉没的船只数。算法核心在于一次性计算让某一端沉没所需的最小攻击次数,并据此更新剩余攻击次数和耐久度。当只剩一艘船时单独处理。该方法时间复杂度为O(n),适用于大规模数据。通过特判和优化处理,确保在O(1)时间内确定每次攻击后的状态变化,从而高效解决问题。

2025-08-23 18:42:48 7

原创 【2025年阿里控股/淘天/智能信息/菜鸟驿站秋招- 8月23日 -第三题(300分)- 数组加减操作】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目要求通过最少操作次数使整数数组不包含区间$[l,r]$内的元素。允许的操作包括元素增减或删除两端元素。关键思路是将问题转化为寻找最小子段和:计算每个元素的调整代价$b_k$,转化为新数组$c_k=b_k-1$,使用动态规划(Kadane算法)求最小非空子段和,最终答案为$n$加上该最小和。该方法时间复杂度为$O(n)$,适用于大规模数据。

2025-08-23 16:53:50 3

原创 【2025年阿里控股/淘天/智能信息/菜鸟驿站秋招- 8月23日 -第二题(200分)- 矩阵的主对角线】(题目+思路+Java&C++&Python解析+在线测试)

题目摘要:给定一个初始全0的n×n矩阵,通过行异或(x_i)和列异或(y_j)操作后,已知主对角线元素z_i。要求根据q次查询(u,v)输出对应位置的元素值。 关键点: 行操作和列操作的效果可分别用二进制标志r_i和c_j表示 对角线元素z_i = (r_i ? x_i : 0) ^ (c_i ? y_i : 0),可唯一确定r_i和c_i 任意位置a[u][v] = (r_u ? x_u : 0) ^ (c_v ? y_v : 0) 解法:预处理所有r_i和c_i后,查询时直接计算R[u]^C[v]即可。

2025-08-23 16:52:53 2

原创 【2025年阿里控股/淘天/智能信息/菜鸟驿站秋招- 8月23日 -第一题(100分)- 钟的响声周期】(题目+思路+Java&C++&Python解析+在线测试)

文章摘要: 题目要求根据钟实际响起的严格递增时间序列,找出其最大可能周期 ( T )。由于钟可能漏响,( T ) 必须能整除所有相邻时间点的差值。解决方法是计算这些差值序列的最大公约数(GCD),即为所求周期。例如,输入时间序列为 ( [0, 1, 3] ) 时,相邻差值为 ( 1 ) 和 ( 2 ),GCD为 ( 1 ),故最大周期为 ( 1 )。算法通过遍历时间差并计算GCD实现,时间复杂度为 ( O(n \log(\text{最大差值})) )。提供Python、Java和C++代码示例。

2025-08-23 16:51:33 1

原创 【2025年美团秋招(开发岗)- 8月23日-第二题(200分)- 美丽数组】(题目+思路+Java&C++&Python解析+在线测试)

题目要求构造一个最长的"美丽数组",满足所有元素两两按位与等于给定的x。通过分析,发现最优解的长度为x的二进制补零位数m加1(即m+1)。构造方法是将x与每个补零位上的单比特掩码组合,形成数组元素。对于x=2^20-1的特殊情况,只能取长度为1的数组。代码实现通过遍历20位二进制,检查x的每一位,若为0则添加对应掩码到数组中,最后输出结果。该解法的时间复杂度为O(T*20),适用于给定的输入规模。

2025-08-23 16:43:56 3

原创 【2025年京东秋招- 8月23日 -第二题(200分)- 故障机器人】(题目+思路+Java&C++&Python解析+在线测试)

文章摘要 题目给定一个n×m网格图,需要从起点到终点找到机器人移动的最短路径。机器人移动受限:若上一步上下移动,下一步只能左右移动;反之亦然。使用BFS算法,记录状态(位置+上一步方向类型),确保交替移动。时间复杂度O(nm),适用于n,m≤2000。若无法到达终点,输出-1。代码实现包括Python、Java和C++版本,均采用BFS队列处理状态转移。

2025-08-23 13:47:18 1

原创 【2025年京东秋招- 8月23日 -第一题(100分)- 小A吃饭】(题目+思路+Java&C++&Python解析+在线测试)

题目摘要 给定三个整数n,m,k,要求计算长度为n的序列数量,其中每个元素介于1到m之间,且相邻元素的差值绝对值不小于k。结果需要对998244353取模。 方法思路 使用动态规划(DP)解决该问题: 状态定义:dp[i][j]表示第i天选择菜j时的合法食谱数。 初始化:第一天可以任意选择,dp[1][j]初始化为1。 转移方程: 对于k=0的情况,没有限制,任意转移。 对于k>0的情况,当前选择的j必须与前一天的t满足|t-j|≥k。通过前缀和优化,快速计算满足条件的t的总和。 前缀和优化:预处理前

2025-08-23 13:46:16 2

原创 【2025年美团秋招- 8月23日-算法岗第四题(400分)/开发岗第三题(300分)- 红点转换】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目要求处理一棵带权树上的动态红点查询问题。初始给定若干红点,支持两种操作:切换节点红点状态和查询某节点到所有红点的带权距离之和。由于数据规模大(n,q≤2×10^5),直接计算会超时。 解法采用点分治策略,将树分解为重心层次结构。对每个节点维护到各层重心的距离,并对每个重心维护两类统计量:全局红点信息和子方向红点信息。切换红点时,沿重心链自下而上更新统计量;查询时,通过累加重心链上的全局量并扣除重复计算的子方向量,快速得到结果。该算法利用树的重心性质,将复杂度优化至O((n+q)log n),适用于

2025-08-23 13:45:15 2

原创 【2025年美团秋招(算法岗)- 8月23日-第三题(300分)- 特别的数】(题目+思路+Java&C++&Python解析+在线测试)

题目要求计算1到n中满足特定条件的整数个数。条件包括是x或y的倍数,或是x或y的因子。 解题思路: 计算x和y的倍数集合的并集大小,使用容斥原理减去重复部分。 枚举x和y不超过n的所有因子,去重后统计其中不属于倍数集合的个数。 最终结果是倍数集合的大小加上额外因子的个数。 该方法高效地避免了四集合的完整容斥,通过分开处理倍数和因子,利用数论算法优化计算。时间复杂度主要由因子枚举决定,适用于大数范围。

2025-08-23 13:42:42 6

原创 【2025年美团秋招(算法岗)- 8月23日-第二题(200分)- 异常检查器】(题目+思路+Java&C++&Python解析+在线测试)

这篇文章摘要总结了基于DBSCAN的异常检测方法的实现步骤: 数据读取与预处理:将训练和测试数据合并后统一进行标准化处理 DBSCAN聚类:使用固定参数(eps=0.3, min_samples=3)进行聚类 簇标签重映射: 计算每个簇在标准化空间的质心 按质心第一维坐标排序后重新编号(0,1,2...) 离群点保持标签-1不变 结果输出:仅输出测试样本的重映射标签,格式为单行JSON数组 该方法实现了无监督异常检测,通过标准化和聚类识别正常簇和离群点,并提供了规范化的输出格式。

2025-08-23 13:41:26 2

原创 【2025年美团秋招(算法岗/开发岗)- 8月23日-第一题(100分)- 整齐摆放】(题目+思路+Java&C++&Python解析+在线测试)

题目要求将n个长方形按顺序放置在x轴上,每个长方形可以旋转但不能重叠,且高度不超过m。目标是求占用x轴的最短长度。 算法思路: 对于每个长方形,有两种放置方式:将较长边或较短边作为高度。我们需要根据允许的最大高度m来选择最优的放置方式: 如果长方形的较长边不超过m,则将其作为高度,宽度取较短边,可以最小化占用长度; 否则,只能将较短边作为高度,宽度为较长边。 通过遍历所有长方形,根据上述规则累加每个长方形的宽度,最终得到占用x轴的最小总长度。 时间复杂度:O(n),其中n是长方形数量,因为每个长方形只需常数

2025-08-23 13:40:19 4

原创 【2025年菜鸟秋招(算法岗)-8月22日-第三题(300分)- 小红的区间或】(题目+思路+Java&C++&Python解析+在线测试)

题目摘要: 给定一个长度为n的数组,计算所有子区间按位或运算结果的不同取值数目。子区间[l,r]的权值为数组元素从a_l到a_r的按位或运算结果。要求高效处理n≤1e5的数据规模。 关键思路: 利用按位或运算的单调性(只增不减),对于每个右端点i,维护以i结尾的所有子区间的或值集合。通过动态维护前一个位置的或值集合,与新元素a_i进行按位或生成当前集合。每个位置的集合大小不超过32位,整体时间复杂度O(n*32)。 算法步骤: 初始化空集合S_prev和全局集合S_all 遍历数组元素x: 创建当前集合S_

2025-08-23 01:10:30 2

原创 【2025年菜鸟秋招(算法岗)-8月22日-第二题(200分)- 最大池化操作】(题目+思路+Java&C++&Python解析+在线测试)

这篇文章摘要总结了如何实现卷积神经网络中的最大池化操作。摘要指出最大池化是一种子采样方法,通过在特征图上滑动固定大小的窗口并选取每个窗口的最大值来减少计算量并提取关键特征。文章提供了输入输出的格式说明和两个具体样例,并详细解析了实现思路:包括输入解析、参数确定、输出尺寸计算和滑动窗口最大值提取。最后给出了C++、Python和Java三种语言的代码实现方案,展示了如何实际完成这一功能。

2025-08-23 01:09:34 2

原创 【2025年菜鸟秋招(算法岗)-8月22日-第一题(100分)- 优化物流运营】(题目+思路+Java&C++&Python解析+在线测试)

摘要 本文介绍了一个物流效率分析系统,通过SQL查询统计各物流线路在不同季节的平均送达时间、全年包裹丢失率及包裹类型占比。系统基于三个数据表:物流线路表、包裹信息表和丢失包裹表,计算每条线路在春夏秋冬四季的平均配送时长(小时,保留两位小数),并分析全年丢失包裹数量与总包裹数的比例,以及大型/小型包裹的运输占比。查询结果按线路ID排序,示例展示了如何计算季节性配送效率指标(如线路A春季平均25.17小时)和运营质量指标(如线路A丢失率0.5),为优化物流网络提供数据支持。

2025-08-23 01:07:46 1

原创 【2025年饿了么秋招-8月22日-第三题(300分)- 小C的偶数】(题目+思路+Java&C++&Python解析+在线测试)

题目摘要: 给定一棵n个节点的无向树,对于每个节点i作为根节点时,统计其所有子树中节点数为偶数的数量。输入为树的结构,输出每个节点作为根时的答案。使用两次DFS(换根DP)可以在O(n)时间内高效解决:第一次DFS计算以1为根的子树大小和初始答案,第二次DFS通过换根动态维护偶子树计数。

2025-08-23 01:04:57 13

原创 【2025年饿了么秋招-8月22日-第二题(200分)- 漂亮数】(题目+思路+Java&C++&Python解析+在线测试)

摘要 本题要求计算区间[l,r]内满足"漂亮数"条件的素数个数。漂亮数是指每次删除最后一位后,剩余数字仍为素数的数(如739→73→7)。通过分析可知,10^18以内的漂亮数仅有83个,可通过BFS预处理生成。预处理时从一位素数开始,在末尾添加1/3/7/9并验证新数是否为素数。之后对每个查询[l,r],用二分法在预处理的漂亮数列表中快速统计区间内的数量。时间复杂度为O(1)每次查询,适用于大规模(T≤10^5)数据。

2025-08-23 01:03:55 7

原创 【2025年饿了么秋招-8月22日-第一题(100分)- Zeeman的LCM序列2】(题目+思路+Java&C++&Python解析+在线测试)

本文提出了一种构造满足特定条件的整数数组的算法。当数组长度n=2时,可以构造解a1=2x和a2=x(或交换顺序),此时满足对于任意不同的i,j有lcm(ai,aj)=lcm(i,j)×x且ai≠i×x的条件。但当n≥3时,不存在符合条件的解,因为必须满足ci=i(与条件矛盾)。算法复杂度为O(1),仅需判断n的值即可给出结果。代码实现简洁,适用于Python、C++和Java等多种语言。

2025-08-23 01:02:19 5

原创 【2025年蚂蚁集团秋招-8月21日-第三题(300分)- 和Tk的游戏】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目要求处理一个由-1和1组成的数组,经过m轮删除操作后,每次需要在剩余数组中找到一个长度与被删除区间相同且和更大的子区间。核心思路包括: 预处理所有可能长度的子区间和,并记录前缀最大值和后缀最大值。 对于每个查询,检查左侧、右侧和跨越删除区间的候选区间,寻找满足条件的解。 使用缓存机制优化重复长度的计算。 转换为新数组的坐标并处理无解情况。 该方法通过预计算和分类讨论高效解决问题,适用于大规模数据。

2025-08-23 01:00:05 26

原创 【2025年蚂蚁集团秋招-8月21日-第二题(200分)- 英文短文本情感二分类】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要:实现了一个基于scikit-learn的英文短文本情感二分类流程。首先对输入JSON数据进行预处理,包括大小写统一和空格规范化;然后使用1-2 gram的CountVectorizer和TfidfTransformer进行特征工程;接着训练带L2正则的Logistic回归模型;最后对测试集进行预测,输出概率≥0.5的正面情感分类结果。整个过程严格限定使用numpy/pandas/scikit-learn库,并确保结果可重现(random_state=42)。

2025-08-23 00:58:38 27

原创 【2025年蚂蚁集团秋招-8月21日-第一题(100分)- 仅含1和合数的数组】(题目+思路+Java&C++&Python解析+在线测试)

摘要:该题目要求找到满足特定条件的数组,其元素均为1或合数,且和为给定整数n。解题关键在于分析n的奇偶性及特殊小数值情况。对于奇数n(除3外),可分解为1和n-1;对于偶数n(除2,4,6外),可分解为4和n-4。特殊情况如n=2,3,4,6需单独处理,保证数组长度最短且满足条件。最终通过分类讨论,输出最优解数组及其长度。

2025-08-23 00:57:09 24

原创 【2025年小红书秋招-8月20日-第三题(300分)- 收藏夹杂乱度】(题目+思路+Java&C++&Python解析+在线测试)

题目解析 问题分析 我们需要将n条Plog分成若干收藏夹,每个收藏夹中的Plog点赞数必须构成连续递增序列,且每个收藏夹的杂乱度由其中杂乱度最大的Plog决定。目标是使所有收藏夹的杂乱度之和最小。 关键思路 分组处理:将相同点赞数的Plog分组,并按点赞数排序 贪心策略:从高点赞数开始,尽可能构建长的连续序列 优化计算:在构建收藏夹时,总是取当前组中最大的杂乱度来最小化总和 算法选择 使用哈希表存储每个点赞数对应的杂乱度列表 对每个点赞数的杂乱度列表进行排序 从最高点赞数开始,尝试构建尽可能长的连续序列 每

2025-08-21 10:49:03 11

原创 【2025年小红书秋招-8月20日-第二题(200分)- 强迫症】(题目+思路+Java&C++&Python解析+在线测试)

这篇文章探讨了如何通过最少的操作将一个二进制字符串转换为回文串的问题。关键思路是分析字符串中需要匹配的位置对,标记不匹配的位置,并计算这些不匹配位置形成的连续段数。每次操作可以翻转一段连续的区间,从而消除这些不匹配段。最终的最小操作次数即为这些不匹配连续段的数量。文章提供了C++、Python和Java三种语言的实现代码,时间复杂度为O(n),适用于大规模数据输入。

2025-08-21 10:47:43 5

原创 【2025年小红书秋招-8月20日-第一题(100分)- 小红薯的好数】(题目+思路+Java&C++&Python解析+在线测试)

题目摘要 题目要求判断一个数的所有本质不同质因子之和是否为奇数。给定多组测试数据,每组输入一个整数n,若n的所有不同质因子之和为奇数则输出"YES",否则输出"NO"。 关键点: 预处理素数表,使用埃氏筛法生成所有不超过√10^9的素数 对每个数n进行质因数分解,累加不同的质因子 判断累加和的奇偶性 特殊处理n=1的情况(视为0) 样例: 输入3个数2、5、12,输出分别为NO、YES、YES,因为: 2的质因子和2是偶数 5的质因子和5是奇数 12的质因子和2+3=

2025-08-21 10:45:35 5

原创 【2025年百度秋招-8月19日-第二题(200分)- 小周买盒饭】(题目+思路+Java&C++&Python解析+在线测试)

摘要:题目要求判断在给定盒饭种类和美味度的情况下,是否存在一个非全选的连续区间,其美味度之和不小于全选的总和。通过Kadane算法计算前n-1和后n-1个元素的最大子段和,若其中任一结果不小于总和,则输出"Yes",否则输出"No"。算法时间复杂度为O(n),适用于每组数据。

2025-08-20 11:38:28 134

原创 【2025年百度秋招-8月19日-第一题(100分)- 小A删数字】(题目+思路+Java&C++&Python解析+在线测试)

题目要求删除数组中的部分元素(不能全删),使剩余数组的权值(相邻元素差绝对值和)不变,求最多可删除的元素数量。 关键思路是:删除不影响权值的中间元素。具体来说,对于连续三个单调(非严格递增或递减)的元素,中间元素可以安全删除。因此,只需保留数组的首尾端点和所有拐点(峰值或谷值),其余均可删除。 算法步骤: 初始化栈结构,保留数组首元素 遍历数组,若当前元素与栈顶元素相同则跳过 若当前元素与栈顶元素构成单调序列,则弹出栈顶元素(可删除) 否则将当前元素压入栈(需保留) 最终n-栈长度即为可删除的最大数量 时间

2025-08-20 11:37:29 15

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除