河南网站备案代理网站建设类文章要发多少片

web/2025/10/6 16:35:32/文章来源:
河南网站备案代理,网站建设类文章要发多少片,接了做网站的单子流程,湖北省职业能力建设处网站算法沉淀——动态规划篇#xff08;子数组系列问题#xff08;上#xff09;#xff09; 前言一、最大子数组和二、环形子数组的最大和三、乘积最大子数组四、乘积为正数的最长子数组长度 前言 几乎所有的动态规划问题大致可分为以下5个步骤#xff0c;后续所有问题分析都… 算法沉淀——动态规划篇子数组系列问题上 前言一、最大子数组和二、环形子数组的最大和三、乘积最大子数组四、乘积为正数的最长子数组长度 前言 几乎所有的动态规划问题大致可分为以下5个步骤后续所有问题分析都将基于此 1.、状态表示通常状态表示分为基本分为以下两种其中更是以第一种为甚。 以i为结尾dp[i] 表示什么通常为代求问题具体依题目而定以i为开始dp[i]表示什么通常为代求问题具体依题目而定 2、状态转移方程 *以上述的dp[i]意义为以i位置为分界 通过最近一步来分析和划分问题由此来得到一个有关dp[i]的状态转移方程。 3、dp表创建初始化 动态规划问题中如果直接使用状态转移方程通常会伴随着越界访问等风险所以一般需要初始化。而初始化最重要的两个注意事项便是保证后续结果正确不受初始值影响下标的映射关系。而初始化一般分为以下两种 直接初始化开头的几个值。一维空间大小1下标从1开始二维增加一行/一列。 4、填dp表、填表顺序根据状态转移方程来确定填表顺序。 5、确定返回值 一、最大子数组和 【题目链接】53. 最大子数组和 【题目】 给你一个整数数组 nums 请你找出一个具有最大和的连续子数组子数组最少包含一个元素返回其最大和。 emdp;子数组是数组中的一个连续部分。 【示例】 输入nums [-2,1,-3,4,-1,2,1,-5,4] 输出6 解释连续子数组 [4,-1,2,1] 的和最大为 6 。 【分析】  我们可以定义dp[i]表示以i为结尾最大连续子数组和。此时连续子数组长度分为1和大于1分别对应如下情况 如果dp[i-1]大于0此时最大连续子数组和为dp[i-1] nums[i]。长度大于1。如果dp[i-1] 0,此时最大的连续子数组和就是nums[i]本身。长度为1. 所以我们可以得到状态转移方程为dp[i] max(nums[i - 1], dp[i - 1] nums[i - 1])。 但显然当i为0时状态转移方程不适用。这里我们给出的方法时dp表空间额外增加1。同时为了保证在使用状态转移方程新增空间对后续填表结果不产生印象。我们将dp[0]初始化为0即可。 【代码编写】 class Solution { public:int maxSubArray(vectorint nums) {int n nums.size();vectorint dp(n 1);int ret INT_MIN;for(int i 1; i n; i){dp[i] max(nums[i - 1], dp[i - 1] nums[i - 1]);ret max(ret, dp[i]);}return ret;} };二、环形子数组的最大和 【题目链接】918. 环形子数组的最大和 【题目】 给定一个长度为 n 的环形整数数组 nums 返回 nums 的非空 子数组 的最大可能和 。  环形数组 意味着数组的末端将会与开头相连呈环状。形式上 nums[i] 的下一个元素是 nums[(i 1) % n] nums[i] 的前一个元素是 nums[(i - 1 n) % n] 。 emsp子数组 最多只能包含固定缓冲区 nums 中的每个元素一次。形式上对于子数组 nums[i], nums[i 1], …, nums[j] 不存在 i k1, k2 j 其中 k1 % n k2 % n 。 【示例】 输入nums [5,-3,5] 输出10 解释从子数组 [5,5] 得到最大和 5 5 10 提示 n nums.length 1 n 3 * 104 -3 * 104 nums[i] 3 * 104 【分析】  显然如果我们死板按照题目所说的环形数组进行分析会感到无从下手。所以我们可以换一种思路我们对数组被偷元素是否包含首尾进行分类讨论。从而将环形数组问题转化称求普通子数组的最大和问题 分类情况 首位元素都被选此时我们将原问题转化成求普通数组中子数组的最小和。最后用整个数组的和减去最小和间接求出该情况最大值。 首位元素不全都被选。此时原问题转化成普通数组中子数组的最大和。 如何求普通数组最大子数组和、最小子数组和 这里我们可以定义fi]表示以i位置为结尾的子数组最大和g[i]表示以i位置为结尾的子数组最小和。 状态转移方程推导 以i位置为结尾的子数组最大和分两种情况如果f[i-1] 0, 此时最大子数组和为f[i-1] nums[i]。否则最大子数组和为nums[i]本身。所以状态转移方程为f[i] max(nums[i], dp[i-1] nums[i])。同理以i位置为结尾的子数组最小和分两种情况如果f[i-1] 0, 此时最小子数组和为f[i-1] nums[i]。否则最小子数组和为nums[i]本身。所以状态转移方程为g[i] min(g[i-1] nums[i], nums[i]) 细节处理  显然不管是求f[i]还是g[i]当i为0时,状态转移方程失效。这里各位办法是给f、g都额外新增一个空间。最后从左往右依次填表即可。  如果数组中元素全为负数时此时子数组和最大值一定为负数。但此时我们发现g[i]最终求得的子数组最小和就是整个数组和此时数组和减子数组最小和的最终结果为0。需要单独处理 【代码编写】 class Solution { public:int maxSubarraySumCircular(vectorint nums) {//数组和int sum 0;for(auto x : nums){sum x;}int n nums.size();vectorint f(n 1);//普通数组最大连续子数组和auto g f;//普通数组最小连续子数组和int fmax INT_MIN, gmin INT_MAX;//分别统计f中最大值g中最小值for(int i 1; i n; i){f[i] max(nums[i - 1], f[i - 1] nums[i - 1]);fmax max(fmax, f[i]);g[i] min(nums[i - 1], g[i - 1] nums[i - 1]);gmin min(gmin, g[i]);}return sum gmin ? fmax : max(fmax, sum - gmin);//判断数组元素是否全为负数} };三、乘积最大子数组 【题目链接】:152. 乘积最大子数组 【题目】 给你一个整数数组 nums 请你找出数组中乘积最大的非空连续子数组该子数组中至少包含一个数字并返回该子数组所对应的乘积。 emsp测试用例的答案是一个 32-位 整数。 【示例】 输入: nums [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 【分析】  我们可以定义f[i]表示以i为结尾的最大子数组乘积g[i]表示以i为结尾的最小子数组乘积。 状态转移方程推导 以i为结尾的子数组长度可能为1或大于1。对于大于1的情况如果nums[i]0此时最大子数组乘积为g[i-1]*nums[i]如果nums[i]0此时最大子数组乘积为g[i-1]*nums[i]。我们仅需直接求得3种情况的最大值即可即状态转移方程为 f[i] max(nums[i - 1], max(f[i - 1] * nums[i - 1], g[i - 1] * nums[i - 1]))。 同理对于g[i]来说也存在如下几种情况。最终可得状态转移方程为g[i] min(nums[i - 1], min(g[i - 1] * nums[i - 1], f[i - 1] * nums[i - 1])); 细节处理  当i0时f、g的状态转移方程不适用。我们可以为f、g额外增加1个空间。同时为了防止新增结果对后续填表造成影响我们将g[0]、f[0]初始化为1。 【代码编写】 public:int maxProduct(vectorint nums) {int n nums.size();vectorint f(n 1);//f[i]表示以i为结尾的子数组的最大乘积auto g f;//g[i]表示以i为结尾的子数组的最小乘积int ret INT_MIN;f[0] 1, g[0] 1;for(int i 1; i n; i){f[i] max(nums[i - 1], max(f[i - 1] * nums[i - 1], g[i - 1] * nums[i - 1]));g[i] min(nums[i - 1], min(g[i - 1] * nums[i - 1], f[i - 1] * nums[i - 1]));ret max(ret, f[i]);}return ret;} };四、乘积为正数的最长子数组长度 【题目链接】1567. 乘积为正数的最长子数组长度 【题目】 给你一个整数数组 nums 请你求出乘积为正数的最长子数组的长度。一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。  请你返回乘积为正数的最长子数组长度。 【示例】 输入nums [-1,-2,-3,0,1] 输出2 解释乘积为正数的最长子数组是 [-1,-2] 或者 [-2,-3] 。 【分析】  我们定义f[i]表示以i为结尾乘积为正的子数组最长长度g[i]表示以i为结尾乘积为负的子数组最长长度。 状态转移方程推导  我们可以从最后一个元素nums[i[入手此时分为以下几种情况 最长子数组长度可能为1或大于1具体如下 将上述情况仅需合并后可得 同理g[i]的情况如下 合并后可得 细节处理  显然当i为0时f、g的状态转移方程都失效。所以我们给f、g额外增加一个空间。为了保证新增空间对后续填表结果不造成印象我们将f[0]、g[0]初始化为0。最后从左往右填表即可。 【代码编写】 class Solution { public:int getMaxLen(vectorint nums) {int n nums.size();vectorint f(n 1);//f[i]: 以i为结尾的乘积为正的最长子数组长度auto g f;//g[i]: 以i为结尾的乘积为负的最长子数组长度int ret INT_MIN;for(int i 1; i n; i){if(nums[i - 1] 0){f[i] f[i - 1] 1;g[i] g[i - 1] 0 ? 0 : g[i - 1] 1;}else if(nums[i - 1] 0){f[i] g[i - 1] 0 ? 0 : g[i - 1] 1;g[i] f[i - 1] 1;}ret max(ret, f[i]);}return ret;} };

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海建设网站的网站wordpress密码正确登录不

单日3亿日志数据准实时存储和分析 –ClickHouse 在自如大前端研发中心的应用 第一章 架构设计 和 用户体系建设 文章目录 单日3亿日志数据准实时存储和分析前言一、pandas是什么?二、使用步骤1.引入库2.读入数据 总结 前言 用户行为数据的收集和分析,…

网站主页不收录淘宝店采用哪些方法做网站推广

在完成二级建造师的报名程序后,考生无法进行退考。如果是不参加考试,可以选择弃考。弃考对个人并没有负面影响,缺席考试的话也不会被记录在个人诚信档案中。当然,如果弃考的话此次考试的成绩将被记为0,下一年参加考试按…

什么公司能做网站建设江苏建设网证书查询

第一章 构件 具有某种功能的 可复用的软件结构单元,为组装服务,可部署,具有规范的接口规约和显式的语境依赖 构件模型 构件模型是对构件本质特征的抽象描述,可以把它想象成一个类的组合,它封装了多个类,并具有一个或多个服务而提供了简单…

外国购物网站设计风格网站做记录访客

原标题:Java 幽灵引用的作用来源:imzoer,blog.csdn.net/imzoer/article/details/8044900找实习的时候,面试大摩,就遇到了这个问题,当时真不该跟面试官交流这个内容的。垃圾收集过程中,对象的可触…

网站加速代码阿里云服务器价格表包年

灵活控制光影,能让场景的渲染效果更加丰富逼真,常见的光源:环境光、点光源、平行光和聚光灯。 环境光 环境光是指场景的整体光照效果,由于场景内若干光源的多次反射形成一致的效果,一般是用来为整个场景指定一个基础的亮度。所以环境光是没有明确的光源位置,在各处形成…

做机械配件的网站山西太原建设厅官方网站

adb connect失败 1. 确认两个设备在同一个局域网 2. 确认此网络是否有adb连接的权限(有的公司网络不允许adb) 3. 确认防火墙设置 如果前面3步都确认没问题,Ping ip也能成功,那么有可能就是端口的问题: step1: 先用有线连接设备&#xff0…

织梦怎么做手机网站第一页网站SEO

PostgreSQL的视图pg_tables pg_tables 是 PostgreSQL 中的一个系统视图,用于显示当前数据库中所有用户定义的表的信息。这个视图提供了关于表的名称、所属模式(schema)、所有者以及表类型等详细信息。 pg_tables 视图的主要列 列名类型描述…

网站建设比较好的公司哈尔滨建设网站哪家好

360后缀勒索病毒,是BeijingCrypt勒索家族中的一种勒索软件病毒,这种恶意软件一旦攻击了企业的服务器就会利用自身独特的加密技术来全盘扫描系统文件,并对用户的全部文件进行加密,并要求用户支付赎金以解锁文件。近期,我…

做网站赚钱的时代过去了吗wordpress怎么建立空白文档

编者按:Pete Warden是TensorFlow移动团队的技术负责人。曾在Jetpac担任首次技术官。Jetpac的深度学习技术经过优化,可在移动和嵌入式设备上运行。该公司已于2014年被谷歌收购。Pete还曾在苹果公司从事GPU优化领域的图像处理工作,并为OReilly撰…

定制网站建设托管南京网站开发

map:接受两个参数(函数,Iterable),map将传入的函数依次作用于Iterable的每个元素,并且返回新的Iterable def f(x):return x*x r map(f,[1,2,3,4]) #此时的r为惰性求值——可用next()和for...in取值 #通过list()返…

南宁网站设计多少钱一个电商网站建设实训心得

百度问的是开放性的问题,应该是为了考察你的综合能力吧,问了两个问题 一,html&css 涉及的内容 块元素与行内元素,浮动,清除浮动 1,一个100px的容器,里面塞了一个空的div,这个di…

免费seo网站贵阳网站开发公司

设计技术: springboot、mysql、maven、前端vue 主要功能: 住户管理、社区公告管理、维修工管理、维修订单管理、接单信息管理、订单信息管理、在线沟通管理、举报信息管理、留言板管理、系统管理等功能模块。 管理员功能模块 管理员通过后台登录页面…

深圳网页制作与网站建设公司wordpress 新闻页面

分类: LINUX 1) PCM设备的句柄.2) 指定同时可供回放或截获的PCM流的方向3) 提供一些关于我们想要使用的设置选项的信息,比如缓冲区大小,采样率,PCM数据格式等4) 检查硬件是否支持设置选项.4.1) 初始化PCM变量4.2) 分配hwparams结构4.3) 打开PCM设备4.4) 以声卡的全部…

建设部网站造价咨询做网站页面怎么做

目录硬知识USCI的I2C模式I2C概述MSP430单片机I2C模块特征及结构框图I2C原理I2C主从操作(1)从模式(2)主模式I2C模式下的USCI中断USCI寄存器—I2C模式I2C API (机翻)API介绍主机模式主机模式单字节传输主机模式多字节传输主机模式单…

什么语言网站比较安全网站制作综述

目录 生产者 发送消息固定步骤 发送模式 1. 单向发送 2. 同步发送 3. 异步发送 生产消息完整代码 消费者 消费消息固定步骤 简单消费代码示例 消息模型 广播消息 顺序消息 延迟消息 批量消息 事务消息 生产者 发送消息固定步骤 1.创建消息生产者producer&#…

阿里巴巴网站建设的态度虚心wordpress 消息机制

用C语言写中文数字字符串转数值变量C语言写中文数字字符转数值变量最近突发奇想:程序中要是输入一串中文数字,如“十万”就能自动识别转换成数值100000储存到变量里该多好。也许你会说,那很简单啊,先将中文字符分开,再…

银川商城网站建设荣成网站制作公司

6、Vue指令 指令:带有v-前缀的特殊标签属性 (1)v-html 作用:设置元素的innerHTML 语法:v-html“表达式” 示例: 提供一个地址,这里是百度的地址,通过v-html渲染 结果&#xff…

用php做网站和go做网站中国网评中国网评

类的继承可以看成对类的属性和方法的重用,能够大大的减少代码量,继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,也就是说在python中支持一个儿子继承多个爹。 通过继承创建的新类为子类或者派…

网站开发checklist今天31个省新增最新消息视频讲解

题目描述:要求实现把给定的一个整数取其相反数的功能,举两个例子如下:x 123, return 321 x -123, return -321; 解题思路:对int a进行判断,如果a的大小不等于0;则定义一个变量temp等于temp*10…

自定义网站图标微信小程序个人网站开发

1.浏览器中输入地址,进入管理界面 2.选择 存储 右击浏览,创建新的目录 3.点击 上载 ,选择镜像文件 4.等待上载完成 5.点击 虚拟机-新建虚拟机 6.进入新建虚拟机界面 7.进入Windows安装界面 8.安装VMware Tools