硬币排成线I和硬币排成线II问题
来源:互联网 发布:知满天教育官网 编辑:程序博客网 时间:2024/05/22 17:11
有 n
个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。
请判定 第一个玩家 是输还是赢?
样例
n = 1
, 返回 true
.
n = 2
, 返回 true
.
n = 3
, 返回 false
.
n = 4
, 返回 true
.
n = 5
, 返回 true
.
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) { return n%3!=0; }}
有 n
个不同价值的硬币排成一条线。两个参赛者轮流从左边依次拿走 1 或 2 个硬币,直到没有硬币为止。计算两个人分别拿到的硬币总价值,价值高的人获胜。
请判定 第一个玩家 是输还是赢?
样例
给定数组 A = [1,2,2]
, 返回 true
.
给定数组 A = [1,2,4]
, 返回 false
.
此题与3602公司2017年春招的编程题分金子问题如出一辙;
import java.util.Scanner;/** * n 个不同价值的硬币排成一条线。两个参赛者轮流从左边依次拿走 1 或 2 个硬币,直到没有硬币为止。计算两个人分别拿到的硬币总价值,价值高的人获胜。请判定 第一个玩家 是输还是赢?您在真实的面试中是否遇到过这个题? Yes样例给定数组 A = [1,2,2], 返回 true.给定数组 A = [1,2,4], 返回 false. * * @author Dell * */public class Test395 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int[] a=new int[n]; int t=0; for(int i=0;i<a.length;i++) { a[i]=sc.nextInt(); t=t+a[i]; } int[][]dp=new int[a.length+1][a.length+1]; int[] sum=new int[n+1]; for(int i=1;i<a.length+1;i++) { dp[i][i]=a[i-1]; sum[i]=sum[i-1]+a[i-1]; } for(int i=1;i<a.length;i++) { dp[i][i+1]=a[i-1]+a[i]; } for(int i=n-2;i>=1;i--) { for(int j=i+2;j<n+1;j++) { int x=sum[j]-sum[i-1]-dp[i+1][j]; int y=sum[j]-sum[i-1]-dp[i+2][j]; dp[i][j]=Math.max(x, y); } } int result=t-dp[1][n]; if(dp[1][n]>result) System.out.println(true); else System.out.println(false);}}
阅读全文
0 0
- 硬币排成线I和硬币排成线II问题
- 硬币排成线 II
- 硬币排成线 II
- LintCode-硬币排成线 II
- LintCode :硬币排成线 II
- [LintCode]硬币排成线 II
- LintCode 硬币排成线 II
- 硬币排成线 II-LintCode
- LintCode-硬币排成线
- 硬币排成线
- 硬币排成线 III
- LintCode : 硬币排成线
- LintCode_394_硬币排成线
- 硬币排成线
- 硬币排成线
- 硬币排成线
- Lintcode 硬币排成线
- 硬币排成线-LintCode
- 安装anaconda2
- leetcode_153. Find Minimum in Rotated Sorted Array
- java的多态
- 离散数学知识框架小结
- Linux查看DNS
- 硬币排成线I和硬币排成线II问题
- cntk深度网络——从入门到转行一
- React native 技术中 android 和 iOS 平台差异
- linux ipc---消息队列---为什么需要键值 key_t key
- AJAX----核心XMLHttpRequest对象介绍
- display:inline、block、inline-block的区别
- 过滤器与拦截器的区别
- numpy安装
- Maven项目结构下 Resources目录下文件读取