假设我们提供了一个大小为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