刷leetcode,回溯算法,发现当计数单位从列表变成整形变量时会发生函数内改变不了全局变量的问题,然后不知道怎么加global变成全局变量,加了global就报错
class Solution:
def subarraySum(self, nums: List[int], k: int) -> int:
res=0
def backtracking(startindex,k):
if k<0 or startindex>=len(nums):
return
if k==0:
res+=1
for i in range(startindex):
k-=nums[i]
backtracking(i+1,k)
k+=nums[i]
backtracking(0,k)
return res
res一直是0
。
希望能把k和res通过某种方式可以被递归函数操作
可以用nonlocal来调用上一层变量