LeetCode486:预测赢家
题意
给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,…… 。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。
给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。
给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,…… 。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。
给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。
有 $n$ 个数,他们对每个数可以进行 $+1$ 或 $-1$ 操作,但对于每一个数,该操作最多只能执行一次。使用最少的操作次数,将这几个数构造成一个等差数列。如果完全不能构造成功,就输出 $-1$。
每个数最多只能修改一次,因此我们只要枚举前两个数的修改状态就能确定首项和公差,只有 $9$ 种可能,然后逐一判断取最小值即可。
给定一棵树,A 在 $x$ 点,B 在 $y$ 点,B 追 A,两人每次可以往相邻点移动,A 先跑,问 A 最晚什么时候被追上。
结论:找到一个点,满足 $dis_B > dis_A$ 且 $dis_B$ 最大,即为最终落脚点。
给定一个字符串 $s$,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。
等价于求字符串 $s$ 以 $s_0$ 开头的最长回文串,然后多出来的后缀翻转后就是需要补足的最小长度,判断回文可以采用哈希。
有 $n$ 个敌人,你现在的武器的耐久度为 $m$,杀每个敌人要消耗 $a_i$ 点耐久度,同时得到可以再杀死 $b_i$ 个人的权利。问最多可以杀死多少人,在杀人最多的情况下最少要消耗多少耐久度?
首先会想到对人进行分类,一类是 $b_i$ 为 $0$ 的,一类是 $b_i$ 不为 $0$ 的。
一个 $A$ 每天可以生产 $x1$ 个 $B$,$y1$ 个 $C$,一个 $B$ 每天可以生产 $x2$ 个 $A$,$y2$ 个 $C$,一个 $C$ 每天可以生产 $x3$ 个 $A$,$y3$ 个 $B$,最开始各有 $x,y,z$ 个,问 $n$ 天后各有多少个? $n = 1e9$
$B$ 和 $C$ 每天可以生产 $x2 + x3$ 个 $A$,那么第一天:$x$,第二天:$x(x2+x3)$,第三天:$(x(x2+x3))*(x2+x3)$ … 显然是等比数列求和。
几块石子 排成一行 ,每块石子都有一个关联值,关联值为整数,由数组 stoneValue 给出。
游戏中的每一轮:Alice 会将这行石子分成两个 非空行(即,左侧行和右侧行);Bob 负责计算每一行的值,即此行中所有石子的值的总和。Bob 会丢弃值最大的行,Alice 的得分为剩下那行的值(每轮累加)。如果两行的值相等,Bob 让 Alice 决定丢弃哪一行。下一轮从剩下的那一行开始。
只 剩下一块石子 时,游戏结束。Alice 的分数最初为 0 。
Update your browser to view this website correctly.&npsb;Update my browser now