代码随想录算法训练营第43天 | 1049. 最后一块石头的重量 II 494. 目标和 474.一和零
创始人
2024-05-01 03:13:52
0

一、Leetcode 1049. 最后一块石头的重量 II

这几个题都很不好给转成01问题。本题一开始我以为怎么撞都行,其实不是,相当于给每项前面加±1,
在这里插入图片描述
就是说有时候不能浪费小石头,得跟大石头碰。
那么问题就很明显了,类似于分割等和子集。变成01背包问题。然后背包容量是sum的一半。
dp[j] = max(dp[j], dp[j - stones[i]] + stones[i]);
dp初始化大小题目给了,默认0;

二、Leetcode 494. 目标和

如何转化为01背包问题呢。假设加法的总和为x,那么减法对应的总和就是sum - x。
所以我们要求的是 x - (sum - x) = target, x = (target + sum) / 2.
此时问题就转化为,装满容量为x背包,有几种方法。
组合问题递推公式 dp[j] += dp[j - nums[i]]
初始化 dp[0] 为 1。

三、Leetcode 474.一和零

确定dp数组(dp table)以及下标的含义
dp[i][j]:最多有i个0和j个1的strs的最大子集的大小为dp[i][j]。
dp[i][j] = max(dp[i][j], dp[i - zeroNum][j - oneNum] + 1);

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...