不知道是不是我理解错了,对于输入 [4, 3, 6, 7, 2, 1] 和整数 5,返回[6,7, 2]也满足条件;输入是 [4, 3, 6, 7, 2, 1] 和整数 9,返回 [7, 2]也满足条件;题干没有说清楚返回的子列表不唯一的时候函数应该返回什么。
暴力破解,找到第一个满足要求的子序列:
def get_list(input_list, integer):
if input_list[0] == integer:
return [integer]
sum_list = [input_list[0]]
length = len(input_list)
for i in range(1, length):
if input_list[i] == integer:
return [integer]
sum_list.append(sum_list[i-1] + input_list[i])
for i in range(2, length):
for j in range(length):
if j + i < length:
if (sum_list[j+i] - sum_list[j]) % integer == 0:
return input_list[j+1:j+i+1]
else:
break
return []