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

代码随想录 Leetcode494. 目标和

题目:


代码(首刷看解析 2024年2月26日)

        思路:根据题意,设两个背包,packageA存放前面是"+"的数字之和,packageB存放前面是“-”的数字之和

则sum = packageA + packageB;

    target = packageA - packageB;

 则根据以上算式可得packageA = (sum + target)/2;

因为sum和target根据题目都已知,则问题变成求可以放哪些数使得和 == packageA--即动态规划01背包问题

class Solution {
public:int findTargetSumWays(vector<int>& nums, int target) {int sum = 0;for (int& num :nums) {sum += num;}if (sum < abs(target)) return 0; int tmp = sum + target;if (tmp % 2 == 1) return 0;int x = tmp / 2;vector<int> dp(x + 1, 0);dp[0] = 1;for (int i = 0; i < nums.size(); ++i) {for (int j = x; j >= nums[i]; --j) {dp[j] += dp[j - nums[i]];}}return dp[x];}
};

http://www.lryc.cn/news/308145.html

相关文章:

  • 【5G NR】【一文读懂系列】移动通讯中使用的信道编解码技术-NR编解码LDPC和Polar概述(一)
  • 代码库管理工具Git介绍
  • 【长期更新】游戏开发中可能会用到的数学小工具
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的活体人脸检测系统(Python+PySide6界面+训练代码)
  • 亚信安慧AntDB助力全链路实时化
  • C#进阶——反射、特性
  • UE5 C++ 发射子弹发射(Projectile)
  • 【蓝牙协议栈】【蓝牙分析工具】Ellisys 分析HCI Log和btsnoop Log
  • 亚信安慧AntDB数据库与流式处理的有机融合
  • 神经网络系列---权重初始化方法
  • 【重要公告】BSV区块链协会宣布将启动多项动态安全增强措施
  • 软件设计模式之访问者模式(Visitor Pattern)
  • 【MySQL】主从同步原理、分库分表
  • uniapp如何实现关闭前面指定数目页面
  • 使用 Helm 安装 极狐GitLab
  • K8S部署postgresql
  • Go 如何控制并发的goroutine数量?
  • 【黑马程序员】1、TypeScript介绍_黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程
  • JS进阶——深入对象
  • Gitlab部署管理
  • MyBatis 学习(二)之 第一个 MyBatis 案例
  • 30天自制操作系统(第21天)
  • linux系统Jenkins的安装
  • 【GStreamer】basic-tutorial-1:GstBus、GstMessage详解
  • Python中的可变变量与不可变变量
  • OpenGL调用窗口,方向键和鼠标
  • fastAdmin表格列表的功能
  • 用来检查 CUDA、Conda 和 PyTorch 的版本的python文件
  • 基于Redisson,实现分布式锁注解
  • 【机器学习】机器学习是什么?