1. 蚂蚁集团开发岗笔试真题解析
作为一名经历过多次大厂笔试的程序员,我深知算法题在技术面试中的重要性。今天我想和大家分享2026年蚂蚁集团开发岗的三道笔试真题,这些题目非常具有代表性,涵盖了计数、几何、数组操作和数论等核心算法知识点。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 题目一:房屋骨架搭建
2.1 问题重述与分析
这道题目要求我们判断给定的木棍长度能否搭建一个房屋骨架。房屋骨架需要三对等长的木棍,分别作为房屋的屋顶、左墙和右墙。
关键点在于:
- 我们需要统计每种长度木棍的数量
- 检查是否能凑出至少3对等长木棍
- 确保这三对木棍能组成有效的三角形结构
2.2 解题思路与实现
首先,我们需要统计每种长度木棍出现的次数。对于每种长度,计算可以组成多少对木棍(即数量除以2取整)。
然后,我们需要检查是否存在至少3对木棍。如果满足这个条件,还需要验证这三对木棍能否构成合法的三角形。
三角形合法性判断依据三角形不等式:任意两边之和大于第三边。在实际操作中,我们可以将三对木棍的长度排序后,检查最短两边之和是否大于最长边。
python复制def can_build_house(sticks):
from collections import defaultdict
# 统计每种长度出现的次数
count = defaultdict(int)
for s in sticks:
count[s] += 1
# 计算每种长度能组成多少对
pairs = []
for length in count:
pairs.extend([length] * (count[length] // 2))
# 检查是否有至少3对
if len(pairs) < 3:
return False
# 取最长的3对检查三角形合法性
pairs.sort()
a, b, c = pairs[-3], pairs[-2], pairs[-1]
return a + b > c
2.3 注意事项与优化
- 在实际编码中,我们可以先统计所有可能的木棍对,然后取最长的三
