当前位置: 首页 > news >正文

494. 目标和 Medium

给你一个非负整数数组 nums 和一个整数 target 。

向数组中的每个整数前添加 '+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 :

 ·例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" 。

返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。

示例 1:

输入:nums = [1,1,1,1,1], target = 3
输出:5
解释:一共有 5 种方法让最终目标和为 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
+1 + 1 + 1 + 1 - 1 = 3

示例 2:

输入:nums = [1], target = 1
输出:1

提示:

 ·1 <= nums.length <= 20

 ·0 <= nums[i] <= 1000

 ·0 <= sum(nums[i]) <= 1000

 ·-1000 <= target <= 1000

题目大意:在每个数可正可负的情况下计算所有数和为target的表达式数目。

分析:

(1)设所有数都是正数时的和为sum,添加负号的元素的绝对值和为tar,使(sum-tar)-tar=target,则tar=(sum-target)/2;

(2)由(1)可知,当(sum-target)%2==1或者sum-target<0时,不可能有和为target的表达式,返回0即可;否则在原数组中选取若干元素使其所选元素的绝对值和为tar即可满足表达式和为target,因此所求的表达式数目为从数组中选取若干元素使绝对值和为tar的方案数;

(3)为求从数组中选取若干元素使绝对值和为tar的方案数,可设二维数组dp,dp[i][j]表示从数组中前i个元素中选取若干元素使绝对值和为j的方案数。则当j<nums[i]时,dp[i][j]=dp[i-1][j],当j>=nums[i]时,dp[i][j]=dp[i-1][j]+dp[i-1][j-nums[i]]。最终dp[nums.size()][tar]的值即为从数组中选择若干元素使绝对值和为tar的方案数,返回即可;

(4)由于dp数组每一行的元素只与上一行的元素有关,因此可对dp数组进行降维,则dp[k]表示遍历第i个元素时从前i-1个元素中选取若干元素使绝对值和为k的方案数。

class Solution {
public:int findTargetSumWays(vector<int>& nums, int target) {int N=nums.size(),sum=0;for(int ele:nums) sum+=ele;int diff=sum-target,tar=diff/2;if(diff<0||diff%2) return 0;vector<int> dp(tar+1,0);dp[0]=1;for(int ele:nums){for(int k=tar;k>=ele;--k) dp[k]+=dp[k-ele];}return dp[tar];}
};

相关文章:

494. 目标和 Medium

给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前添加 &#xff0c;在 1 之前添加 - &#xff0c;然…...

如何实现灌区闸门控制自动化?宏电“灌区哨兵”为灌区闸门控制添“智慧”动能

闸门控制站是节水灌溉工程中的重要组成部分。随着科技的不断进步和农田水利现代化的发展&#xff0c;传统的闸门控制和管理手段已经不能满足现代农业的发展要求。以宏电“灌区哨兵”为核心的闸门自动化控制系统&#xff0c;能有效解决灌区闸门距离远、数量多、不易操作、不好监…...

PHP电商系统开发指南数据库管理

回答&#xff1a;数据库管理是电商系统开发的关键&#xff0c;涉及数据的存储、管理和检索。选择合适的数据库引擎&#xff0c;如mysql或 postgresql。创建数据库架构&#xff0c;定义数据的组织方式&#xff08;如产品表、订单表&#xff09;。进行数据建模&#xff0c;考虑实…...

基于Vue.js的电商前端模板:Vue-Dashboard-Template的设计与实现

摘要 随着电子商务的飞速发展&#xff0c;前端页面的设计和实现变得愈发重要。本文介绍了一个基于Vue.js的电商前端模板——Vue-Dashboard-Template&#xff0c;旨在提供一个高性能、易扩展的电商平台前端解决方案。该模板遵循响应式设计、模块化、组件化开发等设计原则&#…...

论文解读:【CVPR2024】DUSt3R: Geometric 3D Vision Made Easy

论文“”https://openaccess.thecvf.com/content/CVPR2024/papers/Wang_DUSt3R_Geometric_3D_Vision_Made_Easy_CVPR_2024_paper.pdf 代码&#xff1a;GitHub - naver/dust3r: DUSt3R: Geometric 3D Vision Made Easy DUSt3R是一种旨在简化几何3D视觉任务的新框架。作者着重于…...

springboot助农电商系统-计算机毕业设计源码08655

摘要 近年来&#xff0c;电子商务的快速发展引起了行业和学术界的高度关注。基于移动端的助农电商系统旨在为用户提供一个简单、高效、便捷的农产品购物体验&#xff0c;它不仅要求用户清晰地查看所需信息&#xff0c;而且还要求界面设计精美&#xff0c;使得功能与页面完美融合…...

【windows】电脑如何关闭Bitlocker硬盘锁

如果你的硬盘显示这样的一把锁&#xff0c;说明开启了Bitlocker硬盘加密。 Bitlocker硬盘锁&#xff0c;可以保护硬盘被盗&#xff0c;加密防止打开查看数据。 方法一&#xff1a;进入“控制面板->BitLocker 驱动器加密”进行设置。或者“控制面板\系统和安全->BitLocke…...

vue-cli 搭建项目,ElementUI的搭建和使用

vue-cli 官方提供的一个脚手架&#xff0c;用于快速生成一个vue的项目模板&#xff1b;预先定义 好的目录结构及基础代码&#xff0c;就好比咱们在创建Maven项目时可以选择创建一个 骨架项目&#xff0c;这个骨架项目就是脚手架&#xff0c;我们的开发更加的快速&#xff1b; …...

SQL-DDL操作

数据库操作 登录MySQL PS D:\WorkSpace\MachineLearning\DL_learning> mysql -u root -p Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 8.0.37 MySQL Community Server - GPLCopy…...

帮粉丝用gpt写代码生成一个文字视频

文章目录 使用网站ValueError: could not broadcast input array from shape (720,1280) into shape (720,1280,3) 定义文本内容和动画参数定义视频参数创建背景使用 PIL 创建文本图像创建文本剪辑使用函数创建文本剪辑合并所有剪辑导出视频1. 理解错误信息2. 确认图像数组形状…...

IP白名单及其作用解析

在网络安全领域&#xff0c;IP白名单是一项至关重要的策略&#xff0c;它允许特定的IP地址或地址范围访问网络资源&#xff0c;从而确保只有受信任的终端能够连接。下面&#xff0c;我们将深入探讨IP白名单的定义、作用以及实施时的关键考虑因素。 一、IP白名单的定义 IP白名单…...

【Android八股文】如何对ListView RecycleView进行局部刷新的?

文章目录 一、如何对ListView进行局部刷新的?1.1 方法一:更新对应view的内容1.2 方法二:通过ViewHolder去设置值1.3 方法三:调用一次getView()方法1.4 封装在万能适配器当中1.5 总结二、如何对RecyclerView 进行局部刷新的?2.0 为什么会有DiffUtil?2.1 讲解一下DiffUtil2…...

力扣300. 最长递增子序列(动态规划)

Problem: 300. 最长递增子序列 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 明确题目涉及到求取最值问题因此我们可以考虑使用动态规划来解决问题 1.定义状态&#xff1a;定义int类型的dp数组表示以nums[i]结尾的序列的最长长度&#xff0c;初始化均为1即表示…...

【ARM】Ulink不同的系列对于芯片的支持和可以支持keil软件

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 了解不同版本的ULINK可以支持的芯片架构&#xff0c;和ULINK可以和哪个系列的keil软件进行在线调试 2、 问题场景 用于了解不同ULINK仿真器对于芯片的支持是不一样的&#xff0c;并不是ULINK可以支持所有的keil软件…...

【入门】5分钟了解卷积神经网络CNN是什么

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、卷积神经网络的结构1.1.卷积与池化的作用2.2.全连接层的作用 二、卷积神经网络的运算2.1.卷积层的运算2.2.池化的运算2.3.全连接层运算 三、pytorch实现一个CNN例子3.1.模型的搭建3.2.CNN完整训练代码 CNN神…...

dB分贝入门

主要参考资料&#xff1a; dB&#xff08;分贝&#xff09;定义及其应用: https://blog.csdn.net/u014162133/article/details/110388145 目录 dB的应用一、声音的大小二、信号强度三、增益 dB的应用 一、声音的大小 在日常生活中&#xff0c;住宅小区告知牌上面标示噪音要低…...

力扣1744.你能在你最喜欢的那天吃到你最喜欢的糖果吗?

力扣1744.你能在你最喜欢的那天吃到你最喜欢的糖果吗&#xff1f; 对于第i类糖果求出吃到它的最大时间和最小时间 判断给定时间是否在范围内 注意&#xff1a; 同一天可以吃多种糖果 不是只能吃一种 class Solution {public:vector<bool> canEat(vector<int>&am…...

Redis的使用和原理

目录 1.初识Redis 1.1 Redis是什么&#xff1f; 1.2 Redis的特性 1.2.1 速度快 1.2.2 基于键值对的数据结构服务器 1.2.3 丰富的功能 1.2.4 简单稳定 1.2.5 持久化 1.2.6 主从复制 1.2.7 高可用和分布式 1.3 Redis的使用场景 1.3.1 缓存 1.3.2 排行榜系统 1.3.3 计数器应用 1.3…...

扫描全能王的AI驱动创新与智能高清滤镜技术解析

目录 引言1、扫描全能王2、智能高清滤镜黑科技2.1、图像视觉矫正2.2、去干扰技术 3、实际应用案例3.1、打印文稿褶皱检测3.2、试卷擦除手写3.3、老旧文件处理3.4、收银小票3.5、从不同角度扫描文档 4、用户体验结论与未来展望 引言 在数字化时代背景下&#xff0c;文档扫描功能…...

【Linux】Linux系统配置,linux的交互方式

1.Linux系统环境安装 有三种方式 裸机安装或者双系统 -- 不推荐虚拟机安装 --- 不推荐云服务器/安装简单&#xff0c; 维护成本低——推荐&#xff0c; 未来学习效果好 我们借助云服务器 云服务器&#xff08;Elastic Compute Service&#xff0c;ECS&#xff09;的标准定义…...

Nexus:RAG 时代终结?编译器 AI 知识层来了

最近 Pinecone 发布了一个新东西&#xff1a;**Nexus。**最早我是在抖音上看到的&#xff0c;说实话&#xff0c;这种标题挺吓人的&#xff0c;低劣但有效&#xff0c;我都忍不住要点进去&#xff1a; RAG 时代终结了。向量数据库不够用了。Agent 需要 Knowledge Engine。因为…...

长期使用后回顾,Taotoken账单明细对项目财务核算的实际帮助

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用后回顾&#xff0c;Taotoken账单明细对项目财务核算的实际帮助 对于一个持续数月、深度依赖大模型能力的项目组而言&#…...

GitHub合规自动化:法律条款代码化与开源许可证检查实践

1. 项目概述&#xff1a;当法律条款遇上代码仓库最近在折腾一个挺有意思的项目&#xff0c;叫Clause-Logic/exoclaw-github。光看名字&#xff0c;你可能会有点懵——“Clause-Logic”听起来像是法律或合同条款的逻辑分析&#xff0c;“exoclaw”这个组合词有点科幻感&#xff…...

为什么你的旁遮普语语音听起来像“机械诵经”?ElevenLabs隐藏参数`stability=0.35`+`similarity_boost=0.72`调优公式首次披露

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;旁遮普语语音合成的“机械诵经”现象本质 当旁遮普语&#xff08;Gurmukhi script&#xff09;文本被输入主流TTS系统时&#xff0c;常出现一种高度重复、节奏僵硬、缺乏韵律起伏的输出效果——业内戏称…...

KLOGG:专业开发者的海量日志分析利器

KLOGG&#xff1a;专业开发者的海量日志分析利器 【免费下载链接】klogg Really fast log explorer based on glogg project 项目地址: https://gitcode.com/gh_mirrors/kl/klogg 你是否曾为在数十GB的日志文件中寻找关键错误信息而头痛不已&#xff1f;面对海量日志数据…...

Termux安装Linux总失败?可能是你的安卓版本太老了!手把手解决apt update报错

Termux在老旧安卓设备上的终极解决方案&#xff1a;从原理到实践 你是否也曾在抽屉深处翻出一台尘封多年的安卓设备&#xff0c;满心欢喜地想要通过Termux让它重获新生&#xff0c;却在apt update的报错信息前铩羽而归&#xff1f;这并非个例——据统计&#xff0c;全球仍有超过…...

BES平台音频算法集成避坑指南:从声加ENC案例看副核调度与内存优化

BES平台音频算法深度优化&#xff1a;从ENC案例剖析多核调度与内存管理 在蓝牙音频芯片领域&#xff0c;BES平台凭借其出色的能效比和灵活的架构设计&#xff0c;已成为众多高端TWS耳机厂商的首选方案。然而&#xff0c;当工程师们尝试将ENC&#xff08;环境噪声消除&#xff0…...

手把手教你为AK7739音频芯片移植TDM接口(基于Linux ALSA框架)

手把手教你为AK7739音频芯片移植TDM接口&#xff08;基于Linux ALSA框架&#xff09; 在嵌入式音频系统开发中&#xff0c;TDM&#xff08;Time Division Multiplexing&#xff09;接口因其高带宽和多通道支持能力&#xff0c;成为专业音频设备的首选方案。AK7739作为一款高性能…...

保姆级教程:在Spring Boot项目里正确配置Hutool和BouncyCastle搞定SM4国密加密

Spring Boot项目集成SM4国密加密全流程实战指南 在金融、政务等对数据安全要求严格的领域&#xff0c;国密算法正逐步取代国际通用加密标准成为首选方案。作为国内广泛使用的SM4分组密码算法&#xff0c;其128位分组长度和128/192/256位密钥长度设计&#xff0c;在保证安全性的…...

通过curl命令直接测试Taotoken聊天补全接口的配置与调用

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过curl命令直接测试Taotoken聊天补全接口的配置与调用 在对接大模型服务时&#xff0c;有时我们希望在引入完整SDK之前&#xff…...