一亩三分地

 找回密码 注册账号

扫描二维码登录本站


Salarytics=Salary Analytics
查询工资数据
系统自动计算每年收入

码农求职神器Triplebyte
不用海投
内推多家公司面试

科技公司如何
用数据分析驱动产品开发
coupon code 250off 立减$250

深入浅出AB Test
从入门到精通
coupon code 250off 立减$250
游戏初创公司招聘工程师、UIUX Designer和游戏策划
坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
查看: 147|回复: 1
收起左侧

[二分/排序/搜索] [TargetSum] 求问下哪些递归属于回溯

[复制链接] |试试Instant~
我的人缘0

分享帖子到朋友圈
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   81% (1392)
 
 
18% (319)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
[Java] 纯文本查看 复制代码
public int findTargetSumWays(int[] nums, int S) {
    if (nums == null || nums.length == 0){
      return 0;
    }
    return helper(nums, 0, 0, S, new HashMap<>());
  }
  private int helper(int[] nums, int index, int sum, int S, Map<String, Integer> map){
    String encodeString = index + "->" + sum;
    if (map.containsKey(encodeString)){
      return map.get(encodeString);
    }
    if (index == nums.length){
      if (sum == S){
        return 1;
      }else {
        return 0;
      }
    }
    int curNum = nums[index];
    int add = helper(nums, index + 1, sum - curNum, S, map);
    int minus = helper(nums, index + 1, sum + curNum, S, map);
    map.put(encodeString, add + minus);
    return add + minus;
  }



这题用DFS做,为什么不需要回溯呢?比如下面这个例子,明显是一直回溯到第一个+号,后面再递归的吧
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3

上一篇:狗家北美,欧洲,APAC的一套题库吗?
下一篇:Python 学习 4本实用的电子书 (附下载链接)
头像被屏蔽
我的人缘0
肉身翻墙 2019-7-15 12:39:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法 - 不要多加空格: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版||一亩三分地

GMT+8, 2019-9-19 07:49

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表