494. Target Sum
DFS (backtracking)
T: O(2^n)
S:O(n)
class Solution {
public int findTargetSumWays(int[] nums, int target) {
int[] result = new int[1];
backtracking(0, nums, target, result);
return result[0];
}
private void backtracking(int start, int[] nums, int remain, int[] result) {
if (start == nums.length) {
if (remain == 0) {
result[0]++;
}
return;
}
remain += nums[start];
backtracking(start+1, nums, remain, result);
remain -= nums[start];
remain -= nums[start];
backtracking(start+1, nums, remain, result);
remain += nums[start];
}
}DFS + memo
T: O(t*n), t is target range (-2000 to 2000), n is nums length
S:O(t*n)
new one
Last updated
Was this helpful?