LeetCode 刷题系列 -- 1425. 带限制的子序列和

news/2024/11/20 13:20:05/

给你一个整数数组 nums 和一个整数 k ,请你返回 非空 子序列元素和的最大值,子序列需要满足:子序列中每两个 相邻 的整数 nums[i] 和 nums[j] ,它们在原数组中的下标 i 和 j 满足 i < j 且 j - i <= k 。

数组的子序列定义为:将数组中的若干个数字删除(可以删除 0 个数字),剩下的数字按照原本的顺序排布。

示例 1:

输入:nums = [10,2,-10,5,20], k = 2
输出:37
解释:子序列为 [10, 2, 5, 20] 。
示例 2:

输入:nums = [-1,-2,-3], k = 1
输出:-1
解释:子序列必须是非空的,所以我们选择最大的数字。
示例 3:

输入:nums = [10,-2,-10,-5,20], k = 2
输出:23
解释:子序列为 [10, -2, -5, 20] 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/constrained-subsequence-sum
 

思路:

 定义子序列和,sums[i]  表示 以 nums[i] 结尾的限制子序列和的最大值.

  状态转移方程:

    sums[ i ] = max(sums[ i ], sums[ j ] + nums[ i ]);   //  i - k< = j < i

c++

class Solution {
public:int constrainedSubsetSum(vector<int>& nums, int k) {// 定义子序列和,sums[i]  表示 以 nums[i] 结尾的限制子序列和的最大值vector<int> sums(nums.size());// 初始化 base casefor(int i=0;i<nums.size();i++) {sums[i] = nums[i];}int maxSum = nums[0];for(int i=1;i<nums.size();i++) {for(int j=i-1;j>=0 && i-j<=k;j--) {sums[i] = max(sums[i], nums[i] + sums[j]);maxSum = max(maxSum,sums[i]);}}return maxSum;}
};


http://www.ppmy.cn/news/763.html

相关文章

crm客户管理系统为企业带来的价值

简道云CRM场景套件对中小企业来说&#xff0c;crm客户管理系统最核心的作用&#xff0c;一是客户信息(联系信息和洽谈过程&#xff09;的存留&#xff0c;不会因为业务人员的离职造成流失&#xff0c;这点对老板很重要。二是可帮助业务人员&#xff08;客户获取、主管指导等&am…

HTML+CSS+JavaScript仿京东购物网站制作 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

Spring Cloud教程 第十二弹 Spring Cloud Config整合Spring Cloud Bus实现配置动态刷新

Spring Cloud Config整合Spring Cloud Bus1、回顾2、手动刷新3、Spring Cloud Bus动态刷新配置1、回顾 在上一弹&#xff1a;Spring Cloud教程 第十一弹 Spring Cloud Config连接git和数据库 中介绍了spring cloud config的基本使用&#xff0c;但是配置无法动态刷新&#xff…

计算机毕业设计springboot健身俱乐部会籍管理系统cbz46源码+系统+程序+lw文档+部署

计算机毕业设计springboot健身俱乐部会籍管理系统cbz46源码系统程序lw文档部署 [赠送源码]Springboot校园疫情防控系统h5pmv计算机毕业设计-课程设计-期末作业-毕设程序代做本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&am…

PHP基于thinkphp的在线教学网站#毕业设计

在线教学系统采用B/S模式&#xff0c;促进了在线教学系统的安全、快捷、高效的发展。传统的管理模式还处于手工处理阶段&#xff0c;管理效率极低&#xff0c;随着用户的不断增多&#xff0c;传统基于手工管理模式已经无法满足当前用户需求&#xff0c;随着信息化时代的到来&am…

低代码开发平台助力生产管理:采购成本管理的优化

采购是企业经营活动中的重要环节&#xff0c;它处于企业生产经营活动的最前端&#xff0c;同时也是成本费用中占较大比重的环节。采购成本主要是指企业在生产过程中用于采购产品及服务等交易活动所产生的一系列支出&#xff0c;包括物资的购买价格、税费、运输费等&#xff0c;…

SpringBoot+Vue实现前后端分离的员工日志管理信息系统

文末获取源码 开发语言&#xff1a;Java 使用框架&#xff1a;spring boot 前端技术&#xff1a;JavaScript、Vue.js 、css3 开发工具&#xff1a;IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库&#xff1a;MySQL 5.7/8.0 数据库管理工具&#xff1a;phpstudy/Navicat JD…

机器学习3判断机器算法的性能

文章目录一、判断机器算法的性能1基本使用1.目的2.使用pycharm函数封装3.sklearn中的train test split&#xff1a;4.完美调用&#xff1a;二、判断机器算法的性能2分类的准确度&#xff08;accuracy&#xff09;准确度初步计算&#xff1a;完善KNNpy程序如下&#xff1a;一、判…