Linux深度优先搜索文件,Leetcode之深度优先搜索(DFS)专题-494. 目标和(Target Sum)...

Leetcode之深度优先搜索(DFS)专题-494. 目标和(Target Sum)

深度优先搜索的解题详细介绍,点击

给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。

返回可以使最终数组和为目标数 S 的所有添加符号的方法数。

示例 1:

输入: nums: [1, 1, 1, 1, 1], S: 3

输出: 5

解释:

-1+1+1+1+1 = 3

+1-1+1+1+1 = 3

+1+1-1+1+1 = 3

+1+1+1-1+1 = 3

+1+1+1+1-1 = 3

一共有5种方法让最终目标和为3。

分析:

要求给数组每个数字加+或者-,使最后的表达式的值为S。

那我们可以换个思路想,把这些全部先加起来,我们只需要加减号就可以了。

例如图中的例子 sum=5,那如果我要添加一个减号的话,sum需要减2倍的nums[i]

DFS解决,加减号或者不加减号。

class Solution {

int ans = 0;

public int findTargetSumWays(int[] nums, int S) {

if (nums.length == 0)

return 0;

int sum = 0;

for (int i = 0; i < nums.length; i++) {

sum += nums[i];

}

Arrays.sort(nums);

dfs(nums, nums.length - 1, S, sum);

return ans;

}

public void dfs(int[] nums, int step, int S, int sum) {

if (step < 0) {

if (sum == S) {

ans++;

}

return;

}

if (sum < S) {

return;

}

dfs(nums, step - 1, S, sum - (2 * nums[step]));

dfs(nums, step - 1, S, sum);

}

}

Leetcode之深度优先搜索&amp&semi;回溯专题-491&period; 递增子序列(Increasing Subsequences)

Leetcode之深度优先搜索&回溯专题-491. 递增子序列(Increasing Subsequences) 深度优先搜索的解题详细介绍,点击 给定一个整型数组, 你的任务是找到所有该数组 ...

Leetcode之深度优先搜索&amp&semi;回溯专题-980&period; 不同路径 III(Unique Paths III)

Leetcode之深度优先搜索&回溯专题-980. 不同路径 III(Unique Paths III) 深度优先搜索的解题详细介绍,点击 在二维网格 grid 上,有 4 种类型的方格: 1 ...

Leetcode之深度优先搜索&amp&semi;回溯专题-679&period; 24 点游戏(24 Game)

Leetcode之深度优先搜索&回溯专题-679. 24 点游戏(24 Game) 深度优先搜索的解题详细介绍,点击 你有 4 张写有 1 到 9 数字的牌.你需要判断是否能通过 *,/,+, ...

Leetcode之深度优先搜索&amp&semi;回溯专题-638&period; 大礼包(Shopping Offers)

Leetcode之深度优先搜索&回溯专题-638. 大礼包(Shopping Offers) 深度优先搜索的解题详细介绍,点击 在LeetCode商店中, 有许多在售的物品. 然而,也有一些大 ...

深度优先搜索&lpar;DFS&rpar;专题讲座PPT截图【需要原稿的请留言或私信】

以下是今晚我在bilibili直播讲DFS算法的时候的ppt截图,ppt搞了一下午,水平有限,只能做成这个样子,供大家参考!(如果需要原稿,请在评论区留言或私信告诉我,我会发到你的邮箱里),感谢各位的 ...

Leetcode之深度优先搜索(DFS)专题-129&period; 求根到叶子节点数字之和(Sum Root to Leaf Numbers)

Leetcode之深度优先搜索(DFS)专题-129. 求根到叶子节点数字之和(Sum Root to Leaf Numbers) 深度优先搜索的解题详细介绍,点击 给定一个二叉树,它的每个结点都存放 ...

Leetcode之深度优先搜索(DFS)专题-199&period; 二叉树的右视图(Binary Tree Right Side View)

Leetcode之深度优先搜索(DFS)专题-199. 二叉树的右视图(Binary Tree Right Side View) 深度优先搜索的解题详细介绍,点击 给定一棵二叉树,想象自己站在它的右侧 ...

Leetcode之深度优先搜索(DFS)专题-559&period; N叉树的最大深度(Maximum Depth of N-ary Tree)

Leetcode之深度优先搜索(DFS)专题-559. N叉树的最大深度(Maximum Depth of N-ary Tree) 深度优先搜索的解题详细介绍,点击 给定一个 N 叉树,找到其最大深度 ...

Leetcode之深度优先搜索(DFS)专题-1020&period; 飞地的数量(Number of Enclaves)

Leetcode之深度优先搜索(DFS)专题-1020. 飞地的数量(Number of Enclaves) 深度优先搜索的解题详细介绍,点击 给出一个二维数组 A,每个单元格为 0(代表海)或 1( ...

随机推荐

Log4j配置说明及样例

一般的应用都会记录日志,Java圈里面用得最多就属log4j了,比较规范一点就是使用log4j.xml进行配置Log输出.这里就比较有疑问,多数情况是使用log4j.properties文件呐,前面也 ...

AngularJS - Apply方法监听model变化

jquery在Asp&period;net下实现ajax

前台代码:

mysql批量更新数据,即:循环select记录然后更新某一字段

原因: 今天遇到一个问题:一个数据表case_folder_info想要实现自定义排序功能,就在表里新加了一个字段SORT_NUMBER,由于表里存在已有数据,所以这个SORT_NUMBER字段都为空 ...

java Socket实现简单在线聊天(一)

最近的项目有一个在线网页交流的需求,由于很久以前做过的demo已经忘记的差不多了,因此便重新学习一下. 我计划的大致实现步骤分这样几大步: 1.使用awt组件和socket实现简单的单客户端向服务端持 ...

M2贡献分分配方案

1.初始分每个人都为0. 2.每周分配任务,按任务计分. 3.每周每个人有12.5分. 4.次周完成本周任务计6分. 5.未全部完成本周任务计6分. 6.12月29日统计分数,多出来的分数按完成任务数 ...

Java当中的JVM

Java当中JVM 01 在使用控制面板时的实质: Hello.java使用javac,然后变成为Hello.class通过运行java这个命令,在类加载器中(含有加载,验证,准备,解析,初始化,使用 ...

在linux中添加环境变量

首先用命令查看配置了哪些环境变量 env命令查看 编辑环境变量命令  vim ~/.bash_profile Counter_HOME=/home/test/Counterexport Counter ...

&lbrack;Erlang20&rsqb;一起攻克Binary

第一次看到Joe Armstong的里面对Binary的描述时,觉得这个东西好复杂,语法这么奇特(我觉得是Erlang语法中最不好懂的部分); 然后在项目中:Bi ...

Cobbler实现自动化安装&lpar;下&rpar;--实现过程

实验环境 [root@cobbler ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@cobbler ~] ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值