admin 管理员组文章数量: 1184232
文章目录
- 概要
- 第一题 列表
- 第二题 二叉树
概要
小米2025届春招笔试题2-软件开发方向
警告:回忆可能有出入,仅供参考
第一题 列表
描述
小明有很多手套,同一副手套的编号是一样的(编号从
1
1
1开始)。现在手套摆放混乱,小明从中随意拿出一批手套,共计有
n
n
n只(
n
n
n为偶数),并进行
m
m
m次询问。每次的询问内容为:拿出来的这批手套中,若恰有
(
r
−
l
+
1
)
2
\frac{(r-l+1)}{2}
2(r−l+1)副手套则输出
y
e
s
yes
yes,否则输出
n
o
no
no。其中,
l
l
l为这批手套中的第
l
l
l只,
r
r
r为这批手套的第
r
r
r只。(
r
>
l
r>l
r>l)
输入描述
拿出来的手套数量
n
n
n与询问次数
m
m
m
手套的
n
n
n个编号
每次询问需要的
l
l
l与
r
r
r
输出描述
满足题目条件输出
y
e
s
yes
yes,否则输出
n
o
no
no
示例:
输入:
6 4
2 3 1 1 2 3
1 4
3 4
3 6
1 6
输出:
no
yes
no
yes
########################### 分析 ###########################
# 输入 手套数量 6 、询问次数 4
# 输入 手套编号 2 3 1 1 2 3
# 第一次询问 输入 1 4
# 即 2 3 1 1 ,只有1副手套不等于[(4-1+1)/2=2],输出 no
# 第二次询问 3 4
# 即 1 1,恰有1副手套等于[(4-3+1)/2=1],输出 yes
# 第三次询问 3 6
# 即 1 1 2 3 ,只有1副手套等于[(6-3+1)/2=2],输出 no
# 第四次询问 1 6
# 即 2 3 1 1 2 3 ,恰有3副手套等于[(6-1+1)/2=3],输出 yes
########################### 开始编码 ###########################
def main():
# gloves_num 手套数量
# query_num 询问次数
gloves_num, query_num = list(map(int, input().split()))
# 手套编号
gloves = list(map(int, input().split()))
if gloves_num != len(gloves):
msg = "手套数量与编号个数不匹配!"
return msg
results = []
for i in range(query_num):
# 每次询问需要的 l 与 r
l, r = list(map(int, input().split()))
slice_list = gloves[l-1 : r]
# 计算元素重复的个数(编号重复的手套个数)
count_dict = {}
for element in slice_list:
count_dict[element] = count_dict.get(element, 0) + 1
# 统计 Dict 中 value=2 出现的次数
a = sum(1 for value in count_dict.values() if value == 2) # 括号里是 生成器表达式
# 计算 (r-l+1)/2
b = (r - l + 1) // 2
result = "yes" if a == b else "no"
results.append(result)
# results[i] = result # 报错是因为 results 是空list,索引i不存在
results = "\n".join(results)
return results
if __name__ == '__main__':
main()
第二题 二叉树
😭😭不会,题目也忘了。😭😭😭
本文标签: 小米
版权声明:本文标题:小米2025春招编程题(部分) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1758195354a3082798.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论