在 Python 中移除一个元素以得到平均 k


假设我们有一个名为 nums 的数字列表和一个整数 k,我们必须检查是否能从该列表中确切地移除一个元素,以使平均值恰好等于 k。现在我们必须记住,有一些限制 −

  • 2 ≤ n ≤ 1,000,其中 n 是 nums 列表元素的数量
  • nums[i]、k ≤ 1,000,000

所以,如果输入类似 [5,3,2,4,6,10],k = 4,那么输出将为 True,因为如果我们移除 10,则元素的平均值为 (5+3+2+4+6)/5 = 4,这与 k 相同。

为了解决这个问题,我们将按照以下步骤操作 −

  • s:= nums 中所有元素的总和
  • t := k*(nums 的大小 - 1)
  • 对于 nums 中的每个 i,执行
    • 如果 s-i 等于 t,则
      • 返回 True
  • 返回 False

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

示例

 运行演示

class Solution:
   def solve(self, nums, k):
      s=sum(nums)
      t = k*(len(nums)-1)
      for i in nums:
         if s-i == t:
            return True
      return False
ob = Solution()
nums = [5,3,2,4,6,10]
k = 4
print(ob.solve(nums, k))

输入

[5,3,2,4,6,10], 4

输出

True

更新于: 2020 年 9 月 23 日

110 次浏览

开始你的职业生涯

完成课程,获得认证

开始
广告