java - LC494 Brute force recursive sol 使用变量作为属性但不能作为参数工作这意味着类属性作为参数传递?
问题描述
我在这里附上了解决方案。第一个有效,但第二个无效。唯一的变化是我已将结果变量作为具有全局范围的属性移动到辅助函数中的参数。
问题:我知道在第二种情况下,我没有更新作为参数传递的结果,因为我没有像这样更新结果变量:
int i=0;
i = modifyValue(i);
这是否意味着属性或类字段是通过引用传递的,就像在第一个解决方案中一样?
溶胶1:
class Solution {
int result = 0;
public int findTargetSumWays(int[] nums, int S) {
if (nums == null || nums.length == 0) return result;
helper(nums, S, 0, 0);
return result;
}
public void helper(int[] nums, int target, int pos, long eval){
if (pos == nums.length) {
if (target == eval) result++;
return;
}
helper(nums, target, pos + 1, eval + nums[pos]);
helper(nums, target, pos + 1, eval - nums[pos]);
}
}
溶胶2:
class Solution {
public int findTargetSumWays(int[] nums, int S) {
int result = 0;
if (nums == null || nums.length == 0) return result;
helper(nums, S, 0, 0, result);
return result;
}
public void helper(int[] nums, int target, int pos, long eval, int result){
if (pos == nums.length) {
if (target == eval) result++;
return;
}
helper(nums, target, pos + 1, eval + nums[pos], result);
helper(nums, target, pos + 1, eval - nums[pos], result);
}
}
解决方案
推荐阅读
- docker - 在单个 Linux Webserver 服务器上运行多个 Docker 容器
- javascript - 如何使用 javascript 从视图中将模型数据发布到控制器
- python - 线路在错误的地方分裂
- kotlin - 对于使用 Bazel 构建的 Kotlin jar,如何将主类添加到 MANIFEST.MF?
- python - 终止等待队列或工作的python线程
- javascript - 如何在闪亮的仪表板的标题中添加下载按钮
- r - 使用 ggplot2 重新创建 hist() 直方图
- html - 在输入之间手动添加表单错误
- elasticsearch - 想从elasticsearch中的当前数据中提取天数和天时间
- javascript - 初始化 Firebase 应用程序未定义 projectName