// DP 从 1-N 不重复取数 加到sum 上 第一个超过target赢 先手可以赢吗?

开始想错了,以为和climbing stairs和combination sum iv一个类型,是一个dfs

 1 dfs(list, sum, target)
 2
 3   1. 如果list长度是0,那么就说明当前玩家没机会赢了,返回false
 4
 5   2.  如果list长度是1,那么说明该玩家赢了,因为后面一个玩家已经没机会抽了
 6
 7   3. 对于list中的数依次尝试:
 8
 9     如果当前数字加上sum能够达到target了,就返回true
10     否则,从list中把这个数移除,递归
11
12     如果递归的结果是true,也就是说下一个玩家会赢,也就是说当前玩家会输,那么result是false
13     再把这个数加回去,记得放回原位!       

代码:

 1 public class ChooseOneNumFirstWIllWin {
 2     public boolean dfs(List<Integer> list, int sum, int target) {
 3         if(list.size() == 0) {
 4             return false;
 5         }
 6         if(list.size() == 1) {
 7             return true;
 8         }
 9         boolean result = true;
10         for(int i = 0; i < list.size(); i++) {
11             if(sum + list.get(i) >= target) {
12                 return true;
13             }
14             int cur = list.remove(i);
15             if(dfs(list, sum + cur, target)) {
16                 result = false;
17             }
18             list.add(i, cur);
19         }
20         return result;
21     }
22
23     public static void main(String[] args) {
24         List<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,4,5));
25         int sum = 0;
26         int target = 11;
27         ChooseOneNumFirstWIllWin sample = new ChooseOneNumFirstWIllWin();
28         System.out.println(sample.dfs(list, sum, target));
29
30     }
31 }

   

转载于:https://www.cnblogs.com/warmland/p/5940781.html

Snapchat - give sum target listInteger first who hits target wins相关推荐

  1. Target “pango_windowing“ links to target “Eigen3::Eigen“ but the target was not found. Perhaps a

    一.问题描述: joes@joes:~/Downloads/pangolin-master/build$ cmake .. CMake Warning at CMakeLists.txt:75 (me ...

  2. php target当前页面,href标签target=_blank属性的妙用

    我们都知道 html 超链接标签 href 属性 target="_blank" 的作用是使打开的链接以新开的窗口形式出现.但是除了直接写在 href 标签里面,你还知道有其他更巧 ...

  3. 【存储】 iSCSI Target(tgt) |什么是iSCSI target|SCSI协议

    目录 简略 一.iSCSI 介绍 1. iSCSI 定义 2.什么是iSCSI target 3.几种常见的 iSCSI Target 3. 优缺点比较 软iscsi target 二.SCSI 协议 ...

  4. HTML中属于target属性有,HTML的target属性

    HTML的target属性 时间:2017-10-2 元素的target属性用于指定在何处打开链接文档,如果在一个a标签内包含一个target属性,浏览器将会载入和显示用这个标签的href属性命名的, ...

  5. Target “xxx” links to target “Boost::filesystem“ but the target was not found

    Boost::system Boost::thread Boost::timer等等替换为${Boost_LIBRARIES}即可

  6. [Swift]LeetCode1155. 掷骰子的N种方法 | Number of Dice Rolls With Target Sum

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:为敢(WeiGanTechnologies) ➤博客园地址:山青咏芝(https://www.cnblo ...

  7. LeetCode 653. Two Sum IV - Input is a BST--Python解法

    题目地址:Two Sum IV - Input is a BST - LeetCode Given a Binary Search Tree and a target number, return t ...

  8. 698. Partition to K Equal Sum Subsets

    文章目录 1 理解题目 2 分析 2.1进一步优化 2.2 根据花花酱解答 1 理解题目 Given an array of integers nums and a positive integer ...

  9. LeetCode 653. Two Sum IV - Input is a BST

    题目: Given a Binary Search Tree and a target number, return true if there exist two elements in the B ...

最新文章

  1. 用like语句时的C#格式化函数
  2. 使用Postman测试导入和导出excel
  3. 如何在CrossOver里应用Windows容器的存档(备份)与恢复?
  4. mysql修改字符集utf8为utf8mb4
  5. 建立二叉树A【openjudge】
  6. java 链表 最小堆优先级队列_关于Java集合的小抄
  7. oracle数据库两表数据比较
  8. LeetCode 692. 前K个高频单词(优先队列)
  9. linux svn 设置propertise
  10. php ajax 懒加载demo,lazyload懒加载,怎么支持ajax获得的新内容?
  11. python判断密码是否正确_菜鸟使用python实现正则检测密码合法性
  12. IIS中间件渗透总结
  13. Java程序设计(面向对象)- 基本概念
  14. 苹果12系统链接到服务器超时,苹果iphone12无法连接wifi怎么回事 解决方法分享
  15. X.509证书与java
  16. Modbus功能码及错误码说明
  17. 学习搜狗workflow心路历程(1)Windows版本的环境搭建
  18. markman,让设计更有爱!
  19. 2019年电赛准备程序STM32版本
  20. QQ用户的帐号和密码安全

热门文章

  1. c++ 四舍五入保留两位小数_Excel中保留小数点位数
  2. 不止面试题,笔记源码统统都有
  3. 【Web安全】关于SQL注入简介以及使用SqlMap获取管理员密码的探索
  4. 返回指定大小的数组_python中数组和矩阵的基础以及应用
  5. linux 自动ping脚本,linux上ping脚本及zabbix3.xx上自动发现
  6. sql时间转换时分秒_SQL数据库中的是年月日时分秒格式的,什么语句能实现年月日的查询?...
  7. 集合 Arrays.asList | java.lang.UnsupportedOperationException: null
  8. mac mysql本地连接数_如何用command line链接mysql
  9. sqluldr2支持mysql吗_Oracle SQLULDR2 以及 SQLLDR 进行导入导出的功能说明
  10. 全球缺芯+瑞萨火灾——网络营销之下一众车企减产的减产,停产的停产