算法三
来源:互联网 发布:mysql 字段值加一 编辑:程序博客网 时间:2024/06/07 00:13
最后的石头
算法描述
- 小明和小亮玩游戏
- 开始时,盒子中有k块石头(k的范围在[m,n]内)
- 两个孩子轮流拿取石头
- 最后的石头被谁拿走谁获胜
- 在每一轮中,选手从数组(turns)中可以选择一个数字
- 假设总是小明先取,计算小明会赢多少次
参数定义
- 类名
LastStone
- 方法
numWins
- 输入参数
vector <int>,int,int
- 输出
int
- 方法声明
int numWins(vector <int> turns, int m, int n)
限制条件
- turns包含1到50个元素
- turns中的元素范围在1到100之间
- turns中的元素严格按照从小到大排列
- turns的第一个元素为1
- n的范围是[1,100000]
- m的范围是[1,n]
例子
- 输入
- turns: {1, 3, 4}
- m: 1
- n: 5
- 输出
- 4
如果盒子中包含1,3或者4块石头,小明先取,可以一次性都拿出来,小明赢;
如果盒子中包含2块石头,小明只能从turns数组中选择1,于是只能取出一块石头,小亮取出剩下的一块,小亮赢;
如果盒子中包含5块石头,小明取出3块石头,盒子中还剩2块,下次小明取的时候既可以赢了;
综上,小明总共可以赢得4次,输出4。
测试实例
实例一
- 输入
- turns: {1}
- m: 1
- n: 100
- 输出
- 50
- 输入
实例二
- 输入
- turns: {1,2,3,4,5,6,7,8,9,10}
- m: 1
- n: 10
- 输出
- 10
- 输入
实例三
- 输入
- turns: {1, 2, 3}
- m: 1
- n: 8
- 输出
- 6
- 输入
阅读全文
0 0
- 算法三
- 【算法导论】排序算法 三
- STL算法---查找算法(三)
- 算法三(回溯算法)
- 算法(三)Hash-算法
- 排序算法(三)
- {算法}三整数排序
- 三种排序算法
- 三种排序算法
- 算法面试题三
- 算法库(三)
- 逆矩阵算法三
- 逆矩阵算法三
- 三种洗牌算法
- 入门算法三
- YUV(三)-YUV420_to_RGB24 算法
- 作业三--归并算法
- 冬令营之算法三
- **Error**: You must have `libtool' installed
- JAVA基础之工具安装--jdk tomcat eclipse
- Unable to install breakpoint in bus.XXX,第三种解决建议
- 数据结构之二叉树
- 文章标题
- 算法三
- BootStrap用于零基础教学的后台项目
- CSS3中的动画功能-transition功能与animations功能
- POJ2676 解题报告
- Node搭建服务器与GET请求,POST提交表单
- 3 如何方便的在markdown中插入数学公式(不用记那么多语法!!)
- 2017-7-30
- [Brainfuck]模仿Piet语言表现形式的Brainfuck编程语言表示法
- 将二叉搜索树转换成一个排序的双向链表