#华为OD机试#
1.给你一堆数字,从中选3个组成最小的数 100
2.给你两组数,第一组表示设计者的id(不连续,可能是间隔射击,比如3,3,7,4,7,4),第二组表示对应得分。每个选手的得分中选最高的3个相加组成最终得分,并按照得分高低降序排列,得分相同按照id降序排列。比如3号300分,5号300分,2号299分,则返回5 3 3 100
3.给你n个字符串,让你求他可能组成的结果,并按照升序排列
eg:a b c 则返回abc,acb,bac,bca,cab,aba。
第一次只考虑每个字符串只有一个字符,10%
第二次考虑去掉重复结果,55.93%
第三次考虑大写在小写后面之类(默认排序大写在小写前面),还是55.93%
放弃,交卷了。
1.给你一堆数字,从中选3个组成最小的数 100
2.给你两组数,第一组表示设计者的id(不连续,可能是间隔射击,比如3,3,7,4,7,4),第二组表示对应得分。每个选手的得分中选最高的3个相加组成最终得分,并按照得分高低降序排列,得分相同按照id降序排列。比如3号300分,5号300分,2号299分,则返回5 3 3 100
3.给你n个字符串,让你求他可能组成的结果,并按照升序排列
eg:a b c 则返回abc,acb,bac,bca,cab,aba。
第一次只考虑每个字符串只有一个字符,10%
第二次考虑去掉重复结果,55.93%
第三次考虑大写在小写后面之类(默认排序大写在小写前面),还是55.93%
放弃,交卷了。
全部评论
你这个题不难啊
vector<string> vstr;//
int n;
cin >> n;
vector<string> vs;
for (int i = 0; i < n; i++)
{
string temp;
cin >> temp;
vstr.push_back(temp);
}
sort(vstr.begin(), vstr.end());//next_permutation需有序
while (next_permutation(vstr.begin(), vstr.end()))//next_permutation 返回bool类型,全排列vstr中元素
{
string sum;
for (auto& m : vstr)//auto for得到本次排列结果。后续可直接丢set中,排序输出、
{
sum += m;
}
vs.push_back(sum);
}
第三题,排列组合问题回溯算法吧
第三个不就求全排列吗
碰上学弟了😆
字节校招提前批➕社招内推 https://www.nowcoder.com/discuss/982789
碰到校友了嘿嘿
相关推荐
投递阿里国际数字商业集团等公司10个岗位 >
点赞 评论 收藏
分享