LeetCode 1546. Maximum Number of Non-Overlapping Subarrays With Sum Equals Target(动态规划)
时间:2022-07-23
本文章向大家介绍LeetCode 1546. Maximum Number of Non-Overlapping Subarrays With Sum Equals Target(动态规划),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题意:在一个数组中,找到最多的不相交的子序列,每个子序列的和等于target。
题解:动态规划 dp[i]表示从0到i的子数组的答案。维护前缀数组sums[],我们维护一个记录前缀和的map,map[x]表示前缀和是x距离当前i最近的下标。
那么状态转移方程就是dp[i] = max(dp[i-1], dp[map[sums[i]-target]]+1)
class Solution {
public:
int dp[100005];
int sum[100005];
map<int, int> m;
int maxNonOverlapping(vector<int>& nums, int target) {
sum[0] = nums[0];
dp[0] = 0;
if (nums[0] == target)
dp[0] = 1;
m[0] = -1;
m[nums[0]] = 0;
for (int i = 1; i < nums.size(); i++)
{
sum[i] = nums[i] + sum[i - 1];
int left = sum[i] - target;
if (m.find(left) == m.end())
{
dp[i] = dp[i - 1];
}
else
{
int pos = m[left];
dp[i] = max(dp[i - 1], (pos == -1 ? 0 : dp[pos]) + 1);
}
m[sum[i]] = i;
}
return dp[nums.size() - 1];
}
};
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- android BottomSheetDialog新控件解析实现知乎评论列表效果(实例代码)
- Laravel框架实现的上传图片到七牛功能详解
- Flutter沉浸式状态栏/AppBar导航栏/仿咸鱼底部凸起导航栏效果
- Android集成zxing扫码框架功能
- Android 实现抖音小游戏潜艇大挑战的思路详解
- 修改Android Studio 的 Logcat 缓冲区大小操作
- Android自定义View验证码输入框
- PHP生成随机字符串实例代码(字母+数字)
- Laravel框架中缓存的使用方法分析
- android实现搜索功能并将搜索结果保存到SQLite中(实例代码)
- Android实现全局右滑返回
- Android实现打地鼠小游戏
- android实现手机传感器调用
- Android实现接近传感器
- PHP 模拟登陆功能实例详解