#11933. 纸牌游戏
纸牌游戏
🃏 问题:纸牌游戏
📘 题目描述
侯赛因和雅罗斯拉夫在玩一个回合制的纸牌游戏。
- 桌子上放着
n
张牌,排成一行。 - 每张牌上写着一个不同的正整数。
- 两人轮流拿牌,侯赛因先手。
- 每一轮,玩家可以选择最左边或最右边的牌,但必须选出其中数值较大的一张。
- 游戏持续至所有牌被拿完为止。
请输出游戏结束后,侯赛因和雅罗斯拉夫各自拿到的牌上的总和。
📥 输入格式
- 第一行一个整数
n
(1 ≤ n ≤ 10000)表示牌的数量。 - 第二行
n
个正整数,代表每张牌的数字,牌的数字 ≤ 10^9。
📤 输出格式
输出两行:
- 第 1 行:侯赛因最终拿到的数字之和。
- 第 2 行:雅罗斯拉夫最终拿到的数字之和。
🧪 输入样例
7
4 7 5 1 12 8 2
✅ 输出样例
18
21
🧠 思路解析
- 使用双指针模拟从两端取牌。
- 每一轮比较
a[l]
和a[r]
,取较大者,并加到当前玩家的总和中。 - 轮流切换当前玩家。
🧠 时间复杂度分析
- 每次操作只移动一个指针(左或右),操作次数为
n
。 - 时间复杂度:
O(n)
,空间复杂度:O(1)
。