目标和–java–回溯
思路:
这道题很容易想到的就是回溯算法,虽然说时间复杂度高,但ac还是没问题的。
同样可以用dp来做,这里先挖下个坑,等到复习dp的时候,再将动态规划做法加入。
代码:
class Solution {
public int findTargetSumWays(int[] nums, int target) {
return dfs(nums,target,0);
}
int dfs(int[] nums, int target, int position){
if( position == nums.length ){
int res = 0;
for( int i = 0; i < nums.length; ++i ){
res += nums[i];
}
return res == target ? 1 : 0;
}
int val1 = dfs(nums,target,position + 1);
nums[position] = -nums[position];
int val2 = dfs(nums,target,position + 1);
return val1 + val2;
}
}
作者:mai-jia-jun
链接:https://leetcode-cn.com/problems/target-sum/solution/mu-biao-he-by-mai-jia-jun-ngk5/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。