二十四点问题
2015-12-04 12:45
267 查看
判断四个数是否可能通过加减乘得到二十四, 可以使用括号,思路极其像Expression Add Operators, 区别是在处理乘号的时候,一种是没有括号的,和Expression Add Operators一样,一种是带有括号的,其实就是把乘号当作加号来计算
public class Solution { public boolean solution(List<Integer> list) { return helper(list, 0); } public boolean helper(List<Integer> list, int pre) { if (list.size() == 1) { return list.get(0) == 24; } int first = list.get(0); int second = list.get(1); List<Integer> new_list = new LinkedList<Integer>(list); new_list.remove(1); new_list.remove(0); new_list.add(0, first + second); if (helper(new_list, first)) { return true; } new_list.set(0, first - second); if (helper(new_list, first)) { return true; } int tmp = (first - pre) * second + pre; new_list.set(0, tmp); if (helper(new_list, pre)) { return true; } new_list.set(0, first * second); if (helper(new_list, first)) { return true; } return false; } }
相关文章推荐
- iOS 获取当前Wifi的 名称 SSID
- 【Java 常用算法】冒泡排序
- Intellij Idea工具栏添加打开选中文件的资源管理器位置
- 检查网站是否宕机
- MyBatis学习笔记(二)优化MyBatis配置,解耦合,提高复用性
- 高薪程序员都避开了那些坑【安晓辉】
- Redis3.0.5 cluster--安装
- 多线程下载的原理
- 我再也不会相信那些狗屁的话了
- unity NGUI tutorial more events
- hdu 1198Farm Irrigation(并查集)
- Linux 系统内核空间与用户空间通信的实现与分析
- 【Linux驱动】字符设备驱动
- iOS常用手势识别器
- Hadoop日志
- java寻找html文件中的标签
- 12.4
- Splay初步【bzoj1503】
- iOS常用手势识别器
- 在用户空间发生中断时,上下文切换的过程