自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2024-10-18 10:57:57 4634 2

原创 机试真题目录

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

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

原创 【2026年蚂蚁春招开发岗- 3月26日 -第三题- 破译者】(题目+思路+Java&C++&Python解析+在线测试)

摘要 本文提出了一种高效算法,用于在给定整数 $a, b, c$ 的情况下,找到满足 $b+c×k≥0$ 的整数 $k$,使得 $a⊕(b+c×k)$ 的值最小化。当 $c=0$ 时,解为 $a⊕b$;当 $c>0$ 时,通过计算不超过 $a$ 的最大可行值和大于 $a$ 的最小可行值,取两者异或结果的最小值。该算法时间复杂度为 $O(1)$,适用于大规模数据($T≤10^4$)。Python、Java和C++实现均展示了该方法的有效性。

2026-03-26 21:01:35 7

原创 【2026年蚂蚁春招开发岗- 3月26日 -第二题- 该回家了】(题目+思路+Java&C++&Python解析+在线测试)

本文探讨了如何计算网格地图中每个位置到最近'0'的最短距离问题。采用多源广度优先搜索(BFS)算法,首先将所有'0'位置作为起点加入队列,然后逐层扩展更新相邻位置的步数。算法保证了每个位置第一次被访问时即为最短距离。时间复杂度为O(nm),空间复杂度为O(nm),适用于大规模网格。提供了Python、Java和C++三种实现方案,均通过队列实现BFS遍历,确保高效求解。该方法特别适合处理网格图中多源最短路径问题,能够快速准确地给出每个位置到最近目标点的距离。

2026-03-26 21:01:19 7

原创 【2026年蚂蚁春招开发岗- 3月26日 -第一题- 排列拼接】(题目+思路+Java&C++&Python解析+在线测试)

题目概述 给定两个长度为n的排列a和b,可以通过将a重复k次构造数组c。要求找出最小的k值,使得排列b能够作为c的一个子序列出现。 算法思路 位置映射:首先记录排列a中每个数字的位置,建立值到位置的映射关系。 位置序列转换:将排列b转换为对应的位置序列,即每个元素在a中的位置。 下降次数统计:遍历转换后的位置序列,统计相邻元素中"下降"的次数(即后一个位置小于前一个位置)。 计算最小k值:最小k值等于下降次数加1,因为每次下降意味着需要开始一个新的a副本。 复杂度分析 时间复杂度:O(n

2026-03-26 21:01:07 7

原创 【2026年小红书春招- 3月25日 -第三题- 字符置换】(题目+思路+Java&C++&Python解析+在线测试)

本文研究了如何通过一次双向字符置换操作使字符串字典序最小化的问题。提出了一种基于贪心策略和线段树查询的O(n log n)算法,通过确定最早可变小的位置并枚举候选方案来找到最优解。算法利用线段树快速查询区间最小值,并通过比较有限个关键位置的字符来高效选择最佳操作方案。该方法避免了暴力枚举所有可能的三元组,显著提升了计算效率,适用于大规模字符串处理。

2026-03-26 00:13:21 3

原创 【2026年小红书春招- 3月25日 -第二题- 互评操作】(题目+思路+Java&C++&Python解析+在线测试)

摘要 本文研究了一个Plog互评问题,其中不同属性的Plog会进行多轮互评。通过分析连续相同属性段的长度变化规律,提出了一种高效的线性算法。算法首先将输入字符串分段,然后根据段的奇偶性计算最终保留的Plog数量,从而得出被评价的Plog总数。该方法的时间复杂度为O(n),空间复杂度为O(1)或O(n)。代码实现提供了Python、Java和C++三个版本,均能高效处理大规模输入。样例测试验证了算法的正确性,如输入"11101"时正确输出2。

2026-03-26 00:12:34 9

原创 【2026年小红书春招- 3月25日 -第一题- 数据库】(题目+思路+Java&C++&Python解析+在线测试)

摘要:题目要求对用户数据进行排序处理。每条数据包含用户编号(整数)、用户名(小写字母字符串)和用户经验(两位小数浮点数),但输入顺序混乱。需要将数据重新整理为(编号、名称、经验)的正确顺序后,按用户编号升序输出。解题思路是:根据字段特征识别每个字段类型(纯数字为编号,含"."为经验,其余为名称),然后对整理后的数据进行排序。时间复杂度为O(n log n),适用于给定的数据规模(n ≤ 10^5)。代码实现展示了Python、Java和C++三种语言的解决方案。

2026-03-26 00:11:47 3

原创 【2026年阿里巴巴春招- 3月25日-开发岗-第二题- 公共子序列】(题目+思路+Java&C++&Python解析+在线测试)

题目要求在两个排列中找到字典序最大的公共子序列。由于排列元素唯一,可以采用贪心策略:预处理每个数字在两个排列中的位置,然后从大到小扫描数字,选择满足当前位置约束的最大数字,并更新后续可选位置。这种方法保证了字典序最大且时间复杂度为O(n)。 算法步骤: 预处理数字在p和q中的位置 从n到1扫描数字 若数字满足当前可选位置约束,则加入答案并更新后续位置 复杂度分析: 时间:O(n),两次线性扫描 空间:O(n),存储位置信息 输入输出示例: 输入: 5 2 5 3 1 4 5 2 4 3 1 输出: 2 5

2026-03-25 21:56:05 4

原创 【2026年阿里巴巴春招- 3月25日-开发岗-第一题- 圣诞老人分糖果】(题目+思路+Java&C++&Python解析+在线测试)

摘要 该问题要求计算在特定分配规则下,单个小朋友能获得的糖果总数的最小值和最大值。给定n种糖果,每种有c_i个,要分给k个小朋友,规则为:每种糖果必须全部分完,且任意两个小朋友分得的同种糖果数量差不超过1。 关键思路: 每种糖果的分法唯一确定:每个小朋友至少得到⌊c_i/k⌋个,剩余c_i mod k个糖果各多分给1个小朋友。 单个小朋友的最小糖果数为所有糖果的⌊c_i/k⌋之和。 最大糖果数为所有糖果的⌈c_i/k⌉之和,即⌊c_i/k⌋ + (c_i mod k > 0 ? 1 : 0)。 算法:

2026-03-25 21:55:58 5

原创 【2026年阿里巴巴春招- 3月25日-算法岗-第三题- 铁路修建】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目描述了一个国家修建铁路的问题:在n个城市中,m天内每天修建一段连续相邻城市间的双向铁路,并查询从某城市出发可到达的最大城市编号。关键在于发现连通块始终是连续区间,因此使用平衡树维护区间合并。每次操作时合并与新区间[l,r]有交集的旧区间,查询时只需检查x所在区间的右端点。算法复杂度为O(m log m),适用于大规模数据。

2026-03-25 21:55:46 4

原创 【2026年阿里巴巴春招- 3月25日-算法岗-第二题- 该博弈了】(题目+思路+Java&C++&Python解析+在线测试)

本文研究了棋盘博弈问题,其中棋子从左上角出发,两名玩家轮流移动棋子至右下角,根据路径上的格子得分('1'为+1分,'0'为-1分)计算最终得分差。通过动态规划方法,从终点倒序处理每个格子状态,根据当前轮到哪位玩家(由步数奇偶性决定)分别采取最大化或最小化策略进行状态转移。时间复杂度为O(nm),空间复杂度O(nm),适用于给定数据范围。样例验证表明该方法能正确计算最优策略下的得分差值。

2026-03-25 21:55:24 4

原创 【2026年阿里巴巴春招- 3月25日-算法岗-第一题- 三星数字】(题目+思路+Java&C++&Python解析+在线测试)

本文提出了一种构造解法,用于寻找满足特定模数条件的整数对(x,y)。对于给定的整数n,当n≤3时无解;当n为偶数时,直接取(1,2)作为解;当n为奇数且≥5时,取(2,n-1)作为解。该方法通过数学分析避免了暴力枚举,保证了O(1)的时间复杂度,适用于大范围数据输入(1≤n≤10^18)。代码实现简洁高效,提供了Python、Java和C++三种语言的示例。

2026-03-25 21:55:15 5

原创 【2026年阿里巴巴春招- 3月25日-开发岗-第三题- 公共子序列】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 题目要求找出第k个不被3整除且十进制表示中不含数字3的正整数。由于k可达1e18,需高效算法。解法采用数位动态规划,预处理不同位数的合法数个数,再按位构造答案。预处理阶段统计每位数字对3取模的状态,构造时从高位到低位枚举数字,减去不满足条件的方案数,确定第k个数的每一位。时间复杂度为O(L103)预处理和O(L*10)单次查询,其中L为最大位数(25足够)。最终输出按升序排列的第k个合法数。

2026-03-25 20:04:30 6

原创 【2026年OPPO春招- 3月22日 -第三题- 连续零的子数组】(题目+思路+Java&C++&Python解析+在线测试)

摘要:题目要求统计数组中乘积末尾至少包含k个连续零的子数组个数。关键思路是将问题转化为子数组内因子2和因子5的总数都≥k。使用双指针法,预处理每个数的因子2和5的个数,维护滑动窗口内的因子总数,当满足条件时计算有效子数组数量。时间复杂度O(n),空间复杂度O(n)。样例输入[10,5,2,25,50]在k=1时输出12。

2026-03-22 23:25:09 10

原创 【2026年OPPO春招- 3月22日 -第二题- 数组排列】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 题目要求判断一个整数数组是否可以通过若干次操作(将元素不断除以2取整)变成1到n的排列。解决思路采用贪心算法:先将数组从大到小排序,依次处理每个元素,不断除以2直到找到一个未被占用的1到n范围内的数。若所有元素都能找到对应的数则输出"YES",否则输出"NO"。时间复杂度为O(n log n),适用于大规模数据。

2026-03-22 23:24:32 5

原创 【2026年OPPO春招- 3月22日 -第一题- op 串问题】(题目+思路+Java&C++&Python解析+在线测试)

要最大化表达式 ∣w₁−w₂∣+∣w₂−w₃∣,关键在于将数组分成三份后,如何使其中一份尽可能大或尽可能小。通过分析可知,最大值可能出现在以下两种情况之一: 让最小的一份尽可能小(取数组最小值m₁),此时表达式值为总和S减去3m₁ 让最大的一份尽可能大(取总和减去两个最小值m₁+m₂),此时表达式值为2S减去3(m₁+m₂) 最终答案为这两种情况中的较大值。算法只需线性时间遍历数组一次,计算总和和两个最小值即可,时间复杂度O(n),适用于大输入规模。 代码实现简单高效,只需维护总和和两个最小值,最后比较两种

2026-03-22 23:23:49 7

原创 【2026年滴滴春招- 3月22日 -第二题- 线段覆盖】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 本文研究线段覆盖概率问题,给定n条线段和m个格子,每条线段以独立概率出现。要求计算每个格子恰好被一条线段覆盖的概率模998244353的结果。通过分析线段覆盖性质,将问题转化为带权覆盖计数问题。首先处理必选线段,检查重叠情况;然后对普通线段进行概率拆分,将其转化为动态规划问题。使用差分数组标记必选线段,构建转移边,最终通过动态规划计算答案。算法时间复杂度O(n+m),适用于n,m≤2×10^4的规模。

2026-03-22 15:32:55 7

原创 【2026年滴滴春招- 3月22日 -第一题- 取消航班】(题目+思路+Java&C++&Python解析+在线测试)

本文解决了一个航班调度问题,目标是通过取消最多k个航班,使小明从A到C的行程尽可能延迟,若无法到达则返回-1。问题分为两段航班:A到B有n个航班,B到C有m个航班,每段有固定飞行时间ta和tb。 算法采用枚举和二分查找:枚举第一段取消i个航班(0≤i≤k),计算到达B的时间后,在第二段航班中二分查找第一个可用航班,并跳过剩余的k-i个被取消航班。若跳过后越界则无法到达。最终在所有可行方案中取最晚到达时间。 时间复杂度为O(k log m),适用于给定的数据范围。关键步骤包括枚举第一段取消数量、二分查找可用航

2026-03-22 15:32:44 20

原创 【2026年美团春招- 3月21日-开发岗-第二题- 交换括号】(题目+思路+Java&C++&Python解析+在线测试)

我们称一个括号序列为"平衡的括号序列",当且仅当满足以下归纳定义:1)空串是平衡的;2)若字符串A是平衡的,则 “A” 是平衡的;3)若字符串A与B均是平衡的,则 "AB” 是平衡的(表示连接)。例如:括号序列与(())是平衡的:而不是。给定一个偶数长度的括号序列s(仅包含(与))。你可以进行若干次如下操作:1≤i≤n,交换相邻的两个字符si​与si1​。请你计算,最少需要进行多少次这样的相邻交换,才能使整个序列变为一个平衡的括号序列。

2026-03-22 10:36:54 10

原创 【2026年美团春招- 3月21日-算法岗第四题&开发岗第三题- 小美的01树】(题目+思路+Java&C++&Python解析+在线测试)

摘要:本文研究了树上路径操作问题,通过树链剖分将路径拆分为线性区间,结合线段树高效处理区间翻转和二进制值查询。线段树维护正向/反向二进制值、区间长度和懒标记,支持O(log²n)的路径操作。算法在O(n)预处理后,以O(m log²n)复杂度处理m次操作,适用于大规模数据(n,m≤2×10⁵)。样例验证了正确性,如路径"000"→0、"001"→1、"111"→7。

2026-03-22 10:35:36 8

原创 【2026年美团春招- 3月21日-算法岗-第三题- 支配权值划分】(题目+思路+Java&C++&Python解析+在线测试)

摘要:本文探讨了如何将给定数组划分为若干非空连续子数组,使得各子数组权值之和最小。权值定义为子数组中出现次数最多且数值最大的元素乘以子数组长度。通过动态规划方法,我们枚举右端点并倒序扩展左端点,维护当前区间的元素出现次数和支配值。每次转移时计算区间权值并更新最优解,时间复杂度为O(n²),适用于n≤2000的情况。样例测试验证了算法的正确性。

2026-03-22 10:35:25 11

原创 【2026年美团春招- 3月21日-算法岗-第二题- 单层GRU的隐藏状态】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要: 本文介绍了一个GRU(门控循环单元)前向传播的实现方法。给定输入序列、权重矩阵、偏置和初始隐藏状态,通过逐步计算重置门、更新门和候选隐藏状态,最终输出序列处理完成后的隐藏状态h_T。关键步骤包括:1) 拆分拼接的权重矩阵和偏置向量;2) 按时间步依次计算各门控单元;3) 使用sigmoid和tanh激活函数;4) 通过向量运算更新隐藏状态。实现时仅使用基础数学运算,不依赖深度学习框架,适合理解GRU内部机制。代码示例展示了如何手动实现这一过程,并确保数值精度符合要求。

2026-03-22 10:35:17 2

原创 【2026年美团春招- 3月21日-算法岗&开发岗-第一题- 无限循环】(题目+思路+Java&C++&Python解析+在线测试)

题目要求计算将原数组重复拼接10^9次后的新数组的最长严格递增子序列长度。经过分析发现,答案实际上等于原数组中不同元素的个数,因为: 最长严格递增子序列长度不可能超过原数组的不同元素个数; 由于数组被无限次重复,总能从不同拷贝段中选择递增的元素序列。 因此,解题的关键是统计每组测试数据中数组的不同元素个数。对于每组数据,只需使用哈希集合去重统计即可,时间复杂度为O(n),空间复杂度为O(n)。最终答案即为集合的大小。

2026-03-21 20:42:54 20

原创 【2026年得物春招算法岗- 3月21日 -第三题- 爬山】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要: 题目要求从编号递增的景点序列中选出最长"先不下降、后不上升"的子序列。通过动态规划结合树状数组优化,可以高效求解。具体步骤为:1)离散化景点高度;2)从左到右用树状数组计算每个位置结尾的最长不下降子序列长度;3)从右到左计算每个位置开头的最长不上升子序列长度;4)合并结果,取left[i]+right[i]-1的最大值。该方法时间复杂度为O(nlogn),适用于大规模数据。样例输入9个景点高度[2,7,3,5,4,9,1,8,6]时,最优解为6(2,3,4,9,8,6)。

2026-03-21 20:41:12 7

原创 【2026年得物春招算法岗- 3月21日 -第二题- 小美的积木】(题目+思路+Java&C++&Python解析+在线测试)

本文研究了在树结构中选择两个节点断开连接后最大连通块的最小化问题。通过预处理树的DFS遍历、子树大小统计和时间戳等关键信息,并利用倍增技术快速判断祖先关系,算法能够高效计算任意两点断开后的最大连通块大小。通过分类讨论三种不同情况(互为祖先或互不为祖先),枚举所有可能的节点对,最终得出最小得分。该算法时间复杂度为O(n² log n),适用于n≤2×10³的规模。

2026-03-21 20:40:22 9

原创 【2026年得物春招算法岗- 3月21日 -第一题- 祖先】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目要求对两个n位数x和y进行操作,通过交换数位和删除数位(最多k次),使两数差的绝对值最小。关键思路是将问题转化为:1)删除k个非最低位后,2)构造保留序列使高位尽可能小且后续位尽可能大。具体步骤包括:在前k+1位选最小值作为首位,用单调栈选取字典序最大的中间序列,最后一位必须保留。最终结果为首位×10^(m-1)减去后续数字,其中m=n-k。时间复杂度O(n),适用于n≤10^3。

2026-03-21 20:39:36 7

原创 【2026年小米暑期实习算法岗- 3月21日 -第二题- 最小数差】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目要求对两个n位数x和y进行操作,通过交换数位和删除数位(最多k次),使两数差的绝对值最小。关键思路是将问题转化为:1)删除k个非最低位后,2)构造保留序列使高位尽可能小且后续位尽可能大。具体步骤包括:在前k+1位选最小值作为首位,用单调栈选取字典序最大的中间序列,最后一位必须保留。最终结果为首位×10^(m-1)减去后续数字,其中m=n-k。时间复杂度O(n),适用于n≤10^3。

2026-03-21 20:37:41 4

原创 【2026年小米暑期实习算法岗- 3月21日 -第一题- 装备选配】(题目+思路+Java&C++&Python解析+在线测试)

摘要:该问题要求在N件装备中选择M件,使得角色三项属性(力量、敏捷、智力)的绝对值之和最大化。解题思路是枚举8种可能的属性符号组合(如+++、++-等),对每种组合计算每件装备的加权值,排序后取前M大的值求和,最终取所有组合中的最大值。该方法时间复杂度为O(N log N),适用于N≤100000的情况。

2026-03-21 20:37:01 5

原创 【2026年字节跳动春招算法岗- 3月20日 -第四题- 小红的红色直线】(题目+思路+Java&C++&Python解析+在线测试)

文章摘要: 题目要求从n条直线中选出k条染红,最大化红点数量(即不同红线的相交对数)。解题关键在于将直线按斜率分组,同一组内直线平行不产生红点。通过贪心策略,优先选择斜率不同的直线以减少平行对数。具体步骤包括:1)归一化直线方向并分组;2)二分查找最小代价阈值,统计前k小的平行对数;3)用组合数计算最大红点数。算法时间复杂度为O(n log k),适用于大规模数据。最终结果为C(k,2)减去最小平行对数。

2026-03-21 20:35:52 7

原创 【2026年字节跳动春招算法岗- 3月20日 -第三题- 矩阵填写者】(题目+思路+Java&C++&Python解析+在线测试)

摘要 本文提出了一种高效算法,用于解决矩阵覆盖问题:通过覆盖一行一列使相同字母数量最大化。算法通过预处理统计行列中字母出现次数,分类讨论交点是否为目标字母,分别计算最小覆盖代价和方案数。对于每个字母,合并两类情况的最优解,最终在所有字母中选取最大值。该方法时间复杂度为O(n²),适用于n≤500的矩阵,有效解决了大规模数据下的最优覆盖问题。样例测试表明算法能正确计算最大相同字母数及对应方案数。

2026-03-21 20:35:10 5

原创 【2026年字节跳动春招算法岗- 3月20日 -第二题- 字典序】(题目+思路+Java&C++&Python解析+在线测试)

摘要 本文研究字典序问题,给定两个长度相同的单词A和B,计算字典序介于两者之间的单词数量。解题思路是将字符串视为26进制数,通过数值比较来确定位置关系。若A的字典序不小于B,则直接输出0;否则计算B与A的数值差并减1得到中间单词数。该方法将字典序比较转换为数值运算,时间复杂度为O(Tn),适用于题目给定的数据范围。代码实现展示了Python、Java和C++三种语言的解决方案。

2026-03-21 20:34:24 3

原创 【2026年字节跳动春招算法岗- 3月20日 -第一题- 不是字符串问题】(题目+思路+Java&C++&Python解析+在线测试)

摘要 题目要求处理字符串的特殊变换操作:给定字符串s,取出所有长度为x的子串,对每个子串t进行三部分操作:前⌊x/2⌋字符升序排列、整串降序排列、剩余字符升序排列,拼接后统计不同结果的数量。使用集合存储各子串变换结果,最终输出集合大小即可。时间复杂度为O((n-x+1)·xlogx),适用于n≤100的规模。样例1中,输入"bAbbb"的长度4子串处理后得到相同结果,故输出1。

2026-03-21 20:33:38 4

原创 【2026年蚂蚁春招算法岗- 3月19日 -第三题- 四元异或】(题目+思路+Java&C++&Python解析+在线测试)

本文研究了一个关于数组异或的问题:给定长度为n的整数数组和整数k,判断是否存在四个互不相同的下标i,j,p,q,使得a_i⊕a_j⊕a_p⊕a_q=k。通过将问题转化为寻找两对异或值x和y满足x⊕y=k,并提出了一种高效的哈希集合解法。算法的时间复杂度为O(n²),空间复杂度为O(n²),适用于大规模数据。Python和Java代码实现验证了该方法的有效性。

2026-03-19 21:01:26 132

原创 【2026年蚂蚁春招算法岗- 3月19日 -第二题- 文本数值混合特征工程】(题目+思路+Java&C++&Python解析+在线测试)

本文提出一个混合特征工程与双模型融合的分类方法。首先对文本数据分别进行词级TF-IDF(包含unigram和bigram)和字符3-gram TF-IDF特征提取,同时对数值特征进行标准化和二次多项式展开。然后将三路特征拼接,分别训练Logistic回归和SGD分类器两个线性模型,最后对两个模型的预测概率进行平均加权投票,阈值0.5判定类别。该方法通过多角度特征提取和模型融合,提高了分类性能。实验结果表明,该流程能有效处理文本与数值混合数据,在样例测试集上取得了正确分类结果。

2026-03-19 21:00:41 137

原创 【2026年蚂蚁春招算法岗- 3月19日 -第一题- 全相等】(题目+思路+Java&C++&Python解析+在线测试)

本文介绍了如何统计字符串中所有满足条件的非空子串数量,其中"好子串"定义为子串中所有出现过的字符出现次数相等。采用枚举子串左右端点并动态维护字符频次的方法,时间复杂度为O(n²)。代码提供了Python、Java和C++三种实现,通过固定左端点并逐步扩展右端点,同时检查频次数组是否满足条件来统计结果。该方法高效且易于理解,适用于处理小规模字符串输入。

2026-03-19 20:59:34 37

原创 【2026年蚂蚁春招开发岗- 3月19日 -第三题- 分值转移】(题目+思路+Java&C++&Python解析+在线测试)

本文研究了如何通过一次区间操作最小化数组中的逆序对数量。关键思路是:通过选择一个分界点i,将数组分为前后两部分,并分别对这两部分进行整体加减操作。由于操作不影响每部分内部的相对顺序,只需计算前缀和后缀内部的逆序对数之和。利用树状数组高效计算前缀和后缀逆序对,最终在所有可能的分界点中选取最小值。算法时间复杂度为O(n log n),空间复杂度O(n),适用于大规模数据。

2026-03-19 20:58:00 35

原创 【2026年蚂蚁春招开发岗- 3月19日 -第二题- 这里没有三角形】(题目+思路+Java&C++&Python解析+在线测试)

本文提出了一种构造满足特定条件的整数数组的方法。给定长度n,需要构造一个数组,使得任意三个不同元素排序后,最小两个数的和不超过最大数。核心思路是构造一个斐波那契式增长的序列:从1,1开始,每项等于前两项之和。这样构造的序列能确保任意三个数不满足三角形不等式。 关键发现是:当n≤44时有解,可以构造前n项斐波那契数列;当n>44时无解,因为第45项将超过10^9的限制。算法时间复杂度为O(n),空间复杂度为O(n),适用于题目给定的约束条件(n≤2×10^5)。代码实现展示了Python、Java和C+

2026-03-19 20:56:57 34

原创 【2026年蚂蚁春招开发岗- 3月19日 -第一题- 怎么全是三】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 给定一个数组,可以进行删除或修改元素的操作,每次操作后数组元素和必须为偶数。求最多操作次数。当初始和为偶数时,只能删除偶数元素;当初始和为奇数时,先修改一个奇数使其变为偶数,然后删除偶数元素。解法通过统计数组中偶数的数量和总和的奇偶性,直接计算最大操作次数。时间复杂度为O(n),适用于大规模数据。

2026-03-19 20:55:59 37

原创 【2026年华为暑期实习(AI)-3月18日-第三题- 基于KNN的语音数据分类】(题目+思路+Java&C++&Python解析+在线测试)

摘要 本文介绍了使用KNN算法对语音特征向量进行分类的方法。语音片段被表示为3维向量,通过计算待分类向量与已知样本的欧式距离,选取最近的K个邻居进行投票,出现次数最多的类别即为预测结果。算法步骤包括:1)计算距离平方;2)排序样本;3)统计前K个邻居的类别频率。时间复杂度为O(N log N),适用于终端设备语音交互场景。Python和Java代码实现了该算法,通过处理浮点数误差确保分类准确性。

2026-03-18 21:51:35 501

空空如也

空空如也

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

TA关注的人

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