通过在Python中执行某些操作,检查是否至少有一半数组可归零

假设我们提供了一个大小为n的列表,其中包含正整数和另一个正整数m。假设,我们当前处于循环中,并且在每次迭代中,我们将数组中某些元素的值减少1,并将其余元素的值增加m。我们必须找出列表中的一半或更多元素在进行某些迭代后是否变为零。如果可能,我们返回True,否则返回False。

因此,如果输入像input_list = [10,18,35,5,12],m = 4,那么输出将为True。

示例

让我们看下面的实现以更好地理解-

def solve(input_list, m):
   frequency_list = [0] * (m + 1)
   i = 0
   while(i < len(input_list)):
      frequency_list[(input_list[i] % (m + 1))] += 1
      i += 1
   i = 0
   while(i <= m):
      if(frequency_list[i] >= (len(input_list)/ 2)):
         break
      i += 1
   if (i <= m):
      return True
   else:
      return False
input_list = [10, 18, 35, 5, 12]
print(solve(input_list, 4))

输入值

[10, 18, 35, 5, 12], 4

输出结果

True
猜你喜欢