递归,路径选择
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param nums int整型一维数组
# @param target int整型
# @return int整型
#
class Solution:
def __init__(self):
self.count = 0
def findTargetSumWays(self , nums: List[int], target: int) -> int:
# write code here
self.targetSum(nums, [], target, 0)
return self.count
def targetSum(self, nums: List[int], path: List[int], target: int, start: int) -> None:
if start > len(nums):
return False
if start == len(nums) and sum(path) == target:
return True
if start < len(nums) and self.targetSum(nums, path + [nums[start] * 1], target, start + 1):
self.count = self.count + 1
if start < len(nums) and self.targetSum(nums, path + [nums[start] * -1], target, start + 1):
self.count = self.count + 1
return False