【LeetCode】目标和 Java 题解
题目描述
给你一个整数数组 nums 和一个整数 target 。
向数组中的每个整数前添加 '+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 :
例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。
复制代码
思路分析
仔细阅读题目,数组中数据只有两种符号,数据情况清晰,题目要求达成目标和的次数,使用回溯,模拟美剧情况,即可解决。
代码
复制代码
总结
上述回溯算法的时间复杂度是 O(2 ^ n), 空间复杂度是 O(n)
坚持每日一题,加油!
版权声明: 本文为 InfoQ 作者【HQ数字卡】的原创文章。
原文链接:【http://xie.infoq.cn/article/e65af949b6ae755ecf28abdd9】。文章转载请联系作者。
评论