24点问题:收取四张牌加起来等于24点的可能有哪些?

/*** * @author 陈鑫* 回溯解决24点问题**/
public class TwentyFourPoints {public static void scratchCard(ArrayList<Integer> cardList,ArrayList<Integer> handList) {int length = handList.size();//手牌数量Integer count = 0;//总点数//计算手牌总点数if(length != 0 || length < 5) {for(Integer card:handList) {count += card;}}//当手牌数量小于4或者手牌总点数大于等于24时抓牌if(count < 24 && length < 4) {for(Integer card : cardList){//重新定义handListArrayList<Integer> newHandList = new ArrayList<Integer>();//添加手牌newHandList.addAll(handList);newHandList.add(card);//注意:方法传参传的是ArrayList的对象的引用地址,会导致原有的List集合会重复添加//递归抓牌scratchCard(cardList,newHandList);}}else if(count == 24 && length == 4) {//当手牌数量等于4并且总点数等于24点的时候打印for(Integer cardPrint:handList) {System.out.print(cardPrint + ",");}System.out.println();}}public static void main(String[] args) {//牌堆ArrayList<Integer> cardList = new ArrayList<Integer>();//牌堆初始化for(int i=1;i<11;i++) {cardList.add(i);}//手牌ArrayList<Integer> handList = new ArrayList<Integer>();//抓牌scratchCard(cardList,handList);  }
}

算法之回溯算法-24点问题相关推荐

  1. 一文了解贪心算法和回溯算法在前端中的应用

    一文了解贪心算法和回溯算法在前端中的应用 一.贪心算法 1.贪心算法是什么? 2.应用场景 3.场景剖析:零钱兑换 二.回溯算法 1.回溯算法是什么? 2.什么问题适合选用回溯算法解决? 2.应用场景 ...

  2. 常用十大算法 非递归二分查找、分治法、动态规划、贪心算法、回溯算法(骑士周游为例)、KMP、最小生成树算法:Prim、Kruskal、最短路径算法:Dijkstra、Floyd。

    十大算法 学完数据结构该学什么?当然是来巩固算法,下面介绍了十中比较常用的算法,希望能帮到大家. 包括:非递归二分查找.分治法.动态规划.贪心算法.回溯算法(骑士周游为例).KMP.最小生成树算法:P ...

  3. 常用十大算法_回溯算法

    回溯算法 回溯算法已经在前面详细的分析过了,详见猛击此处. 简单的讲: 回溯算法是一种局部暴力的枚举算法 循环中,若条件满足,进入递归,开启下一次流程,若条件不满足,就不进行递归,转而进行上一次流程. ...

  4. 常用算法总结(穷举法、贪心算法、递归与分治算法、回溯算法、数值概率算法)

    博主联系方式: QQ:1540984562 微信:wxid_nz49532kbh9u22 QQ交流群:892023501 目录 1.穷举法 2.贪心算法 3.递归与分治算法 4.回溯算法 5.数值概率 ...

  5. 回溯算法和贪心算法_回溯算法介绍

    回溯算法和贪心算法 回溯算法 (Backtracking Algorithms) Backtracking is a general algorithm for finding all (or som ...

  6. C++算法学习(回溯算法)

    回溯算法 1.目标 2.方法 3.具体思路 4.例题 (1)[力扣:10. 正则表达式匹配](https://leetcode-cn.com/problems/regular-expression-m ...

  7. java回溯算法_回溯算法讲解--适用于leetcode绝大多数回溯题目

    什么是回溯算法? 回溯法是一种系统搜索问题解空间的方法.为了实现回溯,需要给问题定义一个解空间. 说到底它是一种搜索算法.只是这里的搜索是在一个叫做解空间的地方搜索. 而往往所谓的dfs,bfs都是在 ...

  8. 【算法】回溯算法+进阶题——全排列Ⅱ、组合总和Ⅱ、解数独

    目录 一.前言 • 什么是回溯算法 • 用回溯能解决那些题型 二.总体思路 1. 通过树逐层解剖 2. 代码框架 3. 是否需要去重 三.例题 1. 组合总和Ⅱ 2. 全排列Ⅱ 3. 解数独 一.前言 ...

  9. python回溯算法_回溯算法经典问题及python代码实现

    2. 0-1背包问题 # 0-1 bag problem import sys def f(no, cur_mass, things, num): global cur_max if no == nu ...

最新文章

  1. python找出图中所有闭合环_求图中的所有闭合环
  2. OpenCV Resize Reshape
  3. 并发编程实战-第二章学习
  4. TCP通信之获取本机IPV4地址
  5. go-cqhttp + noneBot群聊机器人 配置开发
  6. matlab平差实习报告,《测量平差》课程设计实习报告 五星文库
  7. 收银机多少钱一台推荐科脉系统_收银系统多少钱一套?常用收银系统价格大盘点...
  8. Vue组件通信(父传子、子传父、兄弟传值)
  9. Django支付宝在线支付
  10. jQuery调用JSON数据学习第一天
  11. 「Android高级工程师」BAT大厂面试基础题集合-下-Github标星6-5K
  12. Linux mkdir、touch、mv、cp等命令的介绍与使用
  13. 用python实现FMM和BMM
  14. 河北最新食品安全管理员模拟真题集及答案解析
  15. emlog某涛娱乐资源网源码 自带200多条数据打包
  16. 音乐计算机在线应用,计算机音乐技术在传统音乐创作中的应用及影响
  17. 牛客网--字节跳动面试题--雀魂启动
  18. STM32F0系列创建基础工程模板+按键点灯
  19. 【软件设计师】第一章 计算机组成与结构
  20. php 快速读取文件夹下文件列表

热门文章

  1. java登陆拦截器_登陆拦截器LoginInterceptor
  2. CCjump解决:在微信中访问app下载链接提示“已停止访问该网页”
  3. 微信公众平台开发学习
  4. V2Ray启动时显示Fatal error:can't bind to127.0.0.1:XXXXX解决方案
  5. nginx uwsgi django部署
  6. 如何修改python中字典的键和值
  7. keil警告 LED.C(38): warning C276: constant in condition expression
  8. 西部世界科普时间:FIL将从4月15日开始减产? 谣言!
  9. 什么是理想的大学生活?
  10. 【18-业务开发-基础业务-商品模块-分类管理-前后端管理系统的启动-为分类管理表增加数据-Json插件的下载-返回具有层级目录、父子关系结构的数据】