lintcode-硬币排成一条线
2015-09-03 16:57
281 查看
有
请判定 第一个玩家 是输还是赢?
样例
n =
n =
n =
n =
n =
动态规划 :
找规律:
n个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。
请判定 第一个玩家 是输还是赢?
样例
n =
1, 返回
true.
n =
2, 返回
true.
n =
3, 返回
false.
n =
4, 返回
true.
n =
5, 返回
true.
动态规划 :
class Solution { public: /** * @param n: an integer * @return: a boolean which equals to true if the first player will win */ bool firstWillWin(int n) { // write your code here if(0==n) return false; bool dp[n+1]; dp[1]=true; dp[2]=true; dp[3]=false; for(int i=4;i<n+1;++i){ dp[i]=!dp[i-1]||!dp[i-2]; } return dp ; } };
找规律:
public class Solution { public boolean firstWillWin(int n) { return n % 3 != 0; } }
相关文章推荐
- 迭代器模式(一):销售管理系统中数据的遍历
- web_reg_find和web_find的区别
- spark源码剖析之----Partitioner
- shell里面的test用法
- HDU 4568【最短路+状压DP】
- 各种杂项组件(3)之--CalendarView(日历视图)、DatePicker/TimePicker(日期、时间选择器)、NumberPicker(数值选择器)
- PhotoView源码分析(1)
- 原型继承
- c++ primer读书笔记之c++11(三)
- 一对多的单项关联
- linux之用户管理
- 4.Realm(数据处理,交互)
- Unity3D学习笔记《Space Shooter》二
- C语言实验题——三个数排序
- 将两个数组合并并排序
- 第31-35课
- BZOJ 1026: [SCOI2009]windy数( dp )
- 已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机
- 检测出运动目标后提取边界 两个函数 cvFindContours和cvBoundingRect
- Windows内核编程基础篇之获得当前滴答数