博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
令牌放置
阅读量:4187 次
发布时间:2019-05-26

本文共 975 字,大约阅读时间需要 3 分钟。

你的初始能量为 P,初始分数为 0,只有一包令牌。

令牌的值为 token[i]每个令牌最多只能使用一次,可能的两种使用方法如下:

  • 如果你至少有 token[i] 点能量,可以将令牌置为正面朝上,失去 token[i] 点能量,并得到 1 分。
  • 如果我们至少有 1 分,可以将令牌置为反面朝上,获得 token[i] 点能量,并失去 1 分。

在使用任意数量的令牌后,返回我们可以得到的最大分数。

public int bagOfTokensScore(int[] tokens, int P) 	{		if (tokens == null || tokens.length == 0)			return 0;				// 排序		Arrays.sort(tokens);				int score = 0; // 分数		int MaxScore = 0; // 最大得分		int i = 0;				for (i=0; i
= tokens[i]) { P -= tokens[i]; // 能量点减少 score++; // 得分增加 } else break; } MaxScore = Math.max(MaxScore, score); // 能量点不足以翻开任何一张牌 if (score == 0) { return MaxScore; } int len = tokens.length; while (i != len) { score--; // 使用一分,翻开最后的令牌 P += tokens[len-1]; // 增加能量点 len--; // 表示最后一个令牌已经使用过 // 再次翻令牌 for (int j=i; j
= tokens[j]) { P -= tokens[j]; score++; } else { i = j; // 记录下次要翻牌的位置 break; } } MaxScore = Math.max(MaxScore, score); // 再次比较 } return MaxScore; }

 

转载地址:http://icpoi.baihongyu.com/

你可能感兴趣的文章
MySQL数据库入门(四)
查看>>
关于方法覆盖和属性覆盖的问题?
查看>>
JAVA中ListIterator和Iterator详解
查看>>
目标和
查看>>
跳跃游戏
查看>>
买卖股票的最佳时机 II
查看>>
分发饼干
查看>>
最低票价
查看>>
删列造序
查看>>
使括号有效的最少添加
查看>>
令牌放置
查看>>
回溯法思想
查看>>
子集和问题
查看>>
旅行售货员问题
查看>>
区域和检索 - 数组不可变
查看>>
整数分解
查看>>
最长有效括号
查看>>
救生艇
查看>>
Android中自定义圆形图片(一)
查看>>
Android中ViewPager自动加手动轮播
查看>>