我希望在python中实现一个简单的算法,它将数组和总和作为输入,并找到一个数字 X ,其中如果数组中的所有元素都是> X 转换为 X ,数组中的所有元素都应加起来。
我该如何有效地做到这一点?
这是我的代码:
result = []
for _ in range(int(raw_input())):
input_array = map(int,raw_input().split())
sum_target = raw_input()
for e in input_array:
test_array = input_array
test_array[test_array > e] = e // supposed to replace all elements > e with e, but what's wrong here?
if sum(test_array) == sum_target:
result.append(e)
print result
答案 0 :(得分:0)
使用Numpy库(import numpy
),您可以替换
input_array = map(int,raw_input().split())
带
input_array = numpy.array(raw_input().split()).astype(int)
然后
test_array[test_array > e] = e
正常工作。然后,您也可以test_array.sum()
。
(也就是说,如果你想要就地修改数组,否则你可以替换
test_array = input_array
与
test_array = np.array(input_array)