Так что это проблема Codewars, которую я пытаюсь решить, и в основном я узнал все, что знаю python, узнав по этому сайту. Поэтому я попытался сделать ограничение программирования в этой проблеме. Я думаю, что я в правильном направлении, но «count», кажется, не выполняет свою работу, то есть count _-.-_ / Это действительно помогло бы, если бы вы могли направить меня в правильном направлении. Спасибо!
проблема Вам дан определенный массив положительных и отрицательных целых чисел, элементы которых встречаются только один раз (все они отличаются от 0), определенное число, известное как target, t, t ≠ 0 и число k, k> 0.
Вы должны найти количество комбинаций, числа которых не являются смежными элементами данного массива, а какие суммы (складывая их числа) находятся в диапазоне [ t - k, t + k]
Мой код:
count=0
def check_sum(arr,lb,ub,vlb,vub,add,wh):
global count
if(vlb>vub):
return
if wh==1:
val=arr[vub]
vub-=1
else:
val=arr[vlb]
vlb+=1
if add+val>ub:
if add+val+arr[vlb]<ub:
check_sum(arr,lb,ub,vlb,vub,add,0)
elif add+val<lb:
if add+val+arr[vub]>lb:
check_sum(arr,lb,ub,vlb,vub,add,1)
else:
count+=1
check_sum(arr,lb,ub,vlb,vub,add,1)
check_sum(arr,lb,ub,vlb,vub,add,0)
def find_comb_noncontig(arr, t, k):
# your code here
arr.sort()
check_sum(arr,t-k,t+k,0,len(arr)-1,0,1)
check_sum(arr,t-k,t+k,0,len(arr)-1,0,0)
return count
В этом коде есть некоторая проблема, которую, как мне кажется, я не понимаю в отношении 'count'