题解 | #24点游戏算法#

24点游戏算法

http://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb

记录下自己的解题思路思考过程
第一次思考:考虑有四种运算符,四个数字作为一个序列,因此使用回溯法,带入回溯法框架
boolean flag=false;
void dfs(int cur,int sum){
if(cur==4){
//判断总数是否等于24,若是,将flag置为true
}else for(i:14){//尝试四种运算符
//计算sum
//回溯dfs(cur+1,sum)
}
}
运行,案例通过90%
第二次思考:原来是虽然运算符的情况通过回溯全部尝试过了,但数字序列的顺序却只试过一种
因此,还需要考虑所有的序列排列,即求四个数字的全排列。
直接使用刘汝佳紫书的全排列计算方法,也是回溯法,每次得到一个完整的排列,调用dfs计算结果即可,即两层回溯
int[] obj;
void permutation(int[] source,int cur){
if(cur==4){
dfs(0,0);//计算结果
}else for(i:1
4){//尝试放入四个数字
if(source[i]满足条件)
obj[cur]=source[i];
permutation(source,cur+1);
}
}
3、案例全部通过

全部评论

相关推荐

01-20 16:54
郑州大学 Java
下一个更好呗:感觉小厂注重你做了什么,大厂注重你没做什么,欠缺什么。
投递字节跳动等公司8个岗位 >
点赞 评论 收藏
分享
2024-11-27 16:15
合肥工业大学 Java
点赞 评论 收藏
分享
01-18 09:26
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
01-17 11:44
你在各大软件投了一份又一份,你打招呼的hr一个接一个,但是只要你投过的,很快就下线了,没关系你的能量是很强,你看过的岗位招到人的速度都增加了。朋友们一个个拿着丰厚的实习回报,你却默默在家刷新邮箱,等待着那寥寥无几的面试通知。你每天一睁眼就狂投简历,你一有面试邀约就点确认。过年亲戚们围坐聊天,谈论着他们孩子的职场成就,你试图插话说自己面试过的公司数量,但他们显然不太感兴趣。你在心里自嘲,觉得他们不懂面试的艰辛、不懂得每一次面试机会的珍贵,不懂得一张张精心准备的简历背后的努力。笑你那个小侄子只会在网上刷刷职位,而你已经是各大招聘网站的常客。亲戚们夸赞自己孩子一年的成就,儿子的新工作,女儿的晋升,而...
龚新化:这帖删了呗,这跟我朋友有点相似,不过我是无所谓的😀,没什么感觉,我不轻易破防的,但是我一个朋友可能有点汗流浃背了😕,他不太舒服想睡了,当然不是我哈,我一直都是行的,以一个旁观者的心态看吧,也不至于破防吧😃,就是想照顾下我朋友的感受,他有点破防了,还是建议删了吧😯,当然删不删随你,因为我是没感觉的,就是为朋友感到不平罢了🥺
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务