鲍勃在 Python 中进行的游戏


假设我们有一个叫鲍勃的朋友,他正在与自己进行一场游戏。他给自己一份称为 nums 的数字列表。现在,在每回合中,鲍勃选择列表中的两个元素并用一个正整数替换这两个元素,该正整数与他选择的数字的总和相同。当数组中的所有数字都是偶数时,鲍勃宣布胜利。如果没有任何解决方案,则我们必须找到鲍勃需要进行的最少回合数,以便他宣布胜利;如果没有任何此类解决方案,则返回 -1。

因此,如果输入类似于 [2, 3, 4, 9, 7, 13],则输出将为 2,因为他可以取 3,9,然后用 12 替换,然后取 7,13 并用 20 替换。

为解决此问题,我们将按照以下步骤操作 -

  • a := 从 numes 中仅选取奇数组成的列表

  • 如果 a 的大小是奇数,则

    • 返回 (a 的大小)/2

  • 否则返回 -1

让我们看看以下实现以获得更好的理解 -

示例

 实时演示

class Solution:
   def solve(self, nums):
      a = [x for x in nums if x %2 == 1]
      if len(a) %2 == 0:
         return len(a)/2;
      return -1;
ob = Solution()
print(ob.solve([2, 3, 4, 9, 7, 13]))

输入

[2, 3, 4, 9, 7, 13]

输出

2

更新于: 02-09-2020

505 次查看

开启您的职业生涯

完成课程并取得认证

转到开始
广告