【小米集团】2019校招在线考试-算法试卷编程题

本文介绍了小米集团2019年校招算法岗位的在线考试编程题,包括判断固定金额是否能用不同产品组合、求数字和方案数以及寻找最优数列分割的方法。通过样例输入输出,展示了问题的具体要求和解决方案。

1. 小米大礼包

题目描述:

小米之家是成人糖果店。里面有很多便宜、好用、好玩的产品。中秋节快到了,小米之家想给米粉们准备一些固定金额大礼包。对于给定的一个金额,需要判断能不能用不同种产品(一种产品在礼包最多出现一次)组合出来这个金额。聪明的你来帮帮米家的小伙伴吧。

输入:

输入N(N是正整数,N <= 200)

输入N个价格p(正整数,p <= 10000)用单空格分割

输入金额 M (M是正整数,M <= 100000)

输出:

能组合出来输出 1

否则输出 0

样例输入:

6

99 199 1999 10000 39 1499

样例输出:

1


【雷同题目】

 上面题目的原型,其实就是这个题目。

链接:https://www.nowcoder.com/questionTerminal/7f24eb7266ce4b0792ce8721d6259800

题目描述:

给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数

### 小米笔试中的算法题目及解析 小米笔试中涉及的算法题目通常涵盖了数据结构、排序算法以及字符串处理等内容。以下是基于已有资料整理的相关信息。 #### 排序算法的应用 在某些场景下,排序能够显著简化问题求解过程。例如,在寻找兄弟单词的问题中,通过将字符重新排列并比较其字典顺序,可以快速判断两个词是否互为兄弟单词[^3]。这种思路不仅适用于字符串匹配,还广泛应用于其他组合优化类问题。 #### 特定试题分析 针对具体的小米2020年软件开发工程师位的一道多选题进行了如下说明:选项 A、B 和 D 被认为存在表述上的偏差或逻辑错误[^2]。虽然未提供确切题目原文,但从上下文中推测该题可能围绕常见计算机科学概念展开讨论。 为了更全面理解这类测试形式及其难度水平,可参考智联聘平台下的在线评估体系特征——即整体而言,此类选拔机制倾向于采用较为基础且易于查找参考资料解答类型的考题[^1]。 ```python def find_brother_words(word_list): sorted_word_dict = {} for word in word_list: key = ''.join(sorted(word)) if key not in sorted_word_dict: sorted_word_dict[key] = [] sorted_word_dict[key].append(word) brother_pairs = [words for words in sorted_word_dict.values() if len(words)>1] return brother_pairs example_input=['abc','bac','cab'] print(find_brother_words(example_input)) # [['abc', 'bac', 'cab']] ``` 上述代码片段展示了一个简单方法来检测给定列表内的兄弟词语对。它首先按字母升序重排每个输入串作为哈希键存储起来;最后筛选出那些具有多个成员值集合代表真正的同构关系组群。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值