当前位置: 首页 > news >正文

LintCode: coins in a line I

有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。

请判定 第一个玩家 是输还是赢?

n = 1, 返回 true.
n = 2, 返回 true.
n = 3, 返回 false.
n = 4, 返回 true.
n = 5, 返回 true.

解法:DP, 复杂度 O(N), O(N)

最少是n = 3时,返回false,说明当一个player面临只有3个棋子的时候,他肯定会输。
dp[i]表示的是,当有i个棋子的时候,先手玩家会不会输。dp[i]这个状态可以由dp[i - 1]或者dp[i - 2]跳过来。dp[i]赢得条件是,dp[i - 1]和dp[i - 2]的状态是输的状态。

可以优化空间复杂度到O(1)。

Java:

public boolean firstWillWin(int n) {
    boolean[] dp = new boolean[n + 1];
    for(int i = 1; i <= n; i ++) {
        if(i == 1 || i == 2) dp[i] = true;
        else dp[i] = !dp[i - 1] || !dp[i - 2];
    }
    return dp[n];
}

 

类似题目:

[LintCode] Coins in a line II

 

转载于:https://www.cnblogs.com/lightwindy/p/9814611.html

相关文章:

  • 推荐一款功能强大的Tomcat 管理监控工具,可替代Tomcat Manager
  • python web框架 MVC MTV
  • centos7--网易yum源
  • 数据库连接池和软件设计分层模式
  • 英语
  • 蓝牙的Baseband说明
  • 摩斯码编解码器
  • 四则运算“软件”之升级版
  • DOM & BOM
  • Javascript中局部变量和全局变量还有闭包的概念
  • 10.25 饮食
  • sticky
  • python面向对象的双下滑线方法
  • cf1000C Covered Points Count (差分+map)
  • 调试ucosii_pendsv中断函数有感
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • ➹使用webpack配置多页面应用(MPA)
  • Android开源项目规范总结
  • C++11: atomic 头文件
  • classpath对获取配置文件的影响
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • iOS 颜色设置看我就够了
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JS变量作用域
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Mybatis初体验
  • PHP变量
  • react 代码优化(一) ——事件处理
  • storm drpc实例
  • Terraform入门 - 3. 变更基础设施
  • vue.js框架原理浅析
  • vue学习系列(二)vue-cli
  • zookeeper系列(七)实战分布式命名服务
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 搞机器学习要哪些技能
  • 如何编写一个可升级的智能合约
  • 算法-图和图算法
  • 一道面试题引发的“血案”
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​TypeScript都不会用,也敢说会前端?
  • ​一些不规范的GTID使用场景
  • #ifdef 的技巧用法
  • #QT(串口助手-界面)
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (03)光刻——半导体电路的绘制
  • (a /b)*c的值
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NET性能优化(文摘)