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

dede网站底部提升网页优化排名

dede网站底部,提升网页优化排名,沈阳建设厅网站首页,衡水网络推广 衡水网站建设动态规划-硬币排成线 1 描述2 样例2.1 样例 1:2.2 样例 2:2.3 样例 3: 3 算法解题思路及实现3.1 算法解题分析3.1.1 确定状态3.1.2 转移方程3.1.3 初始条件和边界情况3.1.4 计算顺序 3.2 算法实现3.2.1 动态规划常规实现3.2.2 动态规划滚动数组 该题是lintcode的第394题&#x…

动态规划-硬币排成线

  • 1 描述
  • 2 样例
    • 2.1 样例 1:
    • 2.2 样例 2:
    • 2.3 样例 3:
  • 3 算法解题思路及实现
    • 3.1 算法解题分析
      • 3.1.1 确定状态
      • 3.1.2 转移方程
      • 3.1.3 初始条件和边界情况
      • 3.1.4 计算顺序
    • 3.2 算法实现
      • 3.2.1 动态规划常规实现
      • 3.2.2 动态规划滚动数组

该题是lintcode的第394题, https://www.lintcode.com/problem/394/,解题思路参考九章侯老师给的建议。

1 描述

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

请判定 先手玩家 必胜还是必败?

若必胜, 返回 true, 否则返回 false.

Lintcode超级VIP年卡 618预售 享买一年送一年

微信加【jiuzhang1104】备注【VIP】即可参加

2 样例

2.1 样例 1:

输入: 1
输出: true

2.2 样例 2:

输入: 4
输出: true
解释:
先手玩家第一轮拿走一个硬币, 此时还剩三个.
这时无论后手玩家拿一个还是两个, 下一次先手玩家都可以把剩下的硬币拿完.

2.3 样例 3:

输入: 5
输出: true
解释:
先手玩家第一轮拿走两枚硬币, 此时还剩三个.
这时无论后手玩家拿一个还是两个, 下一次先手玩家都可以把剩下的硬币拿完.

3 算法解题思路及实现

3.1 算法解题分析

3.1.1 确定状态

这是一个博弈型动态规划类算法题,这中类型的算法解题分析不是从最后一步分析,而是从第一步分析,原因是随着硬币的减少,问题越来越简单。
假设两名选手分别为A和B,A为硬币为N时的先手,而当A拿走一或则两枚硬币之后,B则成为剩余硬币的先手,因此A要保证在自己拿走1或者2枚硬币的时候至少有一种情况是可以赢的。
子问题就转换为:
面对N枚硬币,A作为先手是不是必胜,
则需要知道面对N - 1和N - 2枚硬币B作为先手是不是必胜,
状态:设f[i]表示面对i个石子,是否先手必胜f[i] = True/False

3.1.2 转移方程

状态:设f[i]表示面对i个石子,是否先手必胜f[i] = True/False
在这里插入图片描述

f[i] = (f[i-1] == FALSE OR f[i-2] == FALSE)

3.1.3 初始条件和边界情况

  • 设f[i]表示面对i个石子,是否先手必胜f[i] = True/False
  • f[i] = (f[i-1] == FALSE OR f[i-2] == FALSE)
  • f[0] = FALSE 面对0枚硬币,先手必败
  • f[1] = f[2] = True, 面对1枚或2枚硬币,先手必胜

3.1.4 计算顺序

  • f[0], f[1], f[2], …, f[N]
  • 如果f[N] = true,则先手必胜,否则先手必败
  • 时间负责度为O(N)
  • 空间复杂度为:O(N)

3.2 算法实现

3.2.1 动态规划常规实现

public class Solution {/*** @param n: An integer* @return: A boolean which equals to true if the first player will win*/public boolean firstWillWin(int n) {// write your code hereif (n <= 0) {return false;}if (n <= 2) {return true;}boolean [] f = new boolean[n + 1];f[0] = false;f[1] = true;for (int i = 2; i <= n; i++) {f[i] = (!f[i - 1] || !f[i - 2]);}return f[n];}
}

3.2.2 动态规划滚动数组

public class Solution {/*** @param n: An integer* @return: A boolean which equals to true if the first player will win*/public boolean firstWillWin(int n) {// write your code hereif (n <= 0) {return false;}if (n <= 2) {return true;}boolean [] f = new boolean[2];f[0] = false;f[1] = true;for (int i = 2; i <= n; i++) {f[i % 2] = !(f[(i -1) % 2] && f[(i - 2) % 2]);}return f[n % 2];}
}
http://www.tj-hxxt.cn/news/1650.html

相关文章:

  • jsp网站开发总结推广关键词如何优化
  • 收费网站建设找文网客服联系方式
  • 比较出名做耐克的网站媒体广告投放平台
  • 梧州网站平台建设公司seo快速排名利器
  • 如何做flash游戏下载网站关键词在线听免费
  • 广东的一起做网站搜狗收录批量查询
  • 最专业网站建设哪家好seo优化网站百度技术
  • wordpress国外主题公园seo外推软件
  • wap网站格式常州网站优化
  • 郑州做网站公司 汉狮网络专业app营销策划方案
  • 做非法网站网站推广优化外链
  • 网站在工信部备案查询seo推广要多少钱
  • 做游戏特效的网站网站提交收录入口链接
  • 网站渗透入侵全部教程网络营销策略的演变
  • 泊头哪里有做网站的济南专业做网站
  • 做内部网站费用站长工具域名解析
  • 网站漂浮广告怎么做亿速云
  • ui设计与网站建设廊坊自动seo
  • jsp网站开发的环境配置过程百度一下官方网站
  • 做网站必看的外国书籍优化设计三年级下册数学答案
  • 百度公司可以建设网站百度seo收录软件
  • 新生活cms订货系统seo标题关键词优化
  • 微网站背景图片自助建站系统代理
  • 团购网站经营模式佛山网站建设公司哪家好
  • 网站建设自建服务器济南seo优化公司助力排名
  • 我想做直播网站该怎么做百度知道提问
  • 国外域名 网站备案外链收录网站
  • 公司基本资料模板南宁seo排名外包
  • wordpress 聊天对话框seo平台
  • 安康免费做网站企业推广宣传方式