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

重庆网站建设 红旗河沟html网站制作答辩问题

重庆网站建设 红旗河沟,html网站制作答辩问题,本钢建设公司官网,如何规范网站使用目录 一.题目 二.解题思路 三.解题代码 一.题目 918. 环形子数组的最大和 给定一个长度为 n 的环形整数数组 nums ,返回 nums 的非空 子数组 的最大可能和 。 环形数组 意味着数组的末端将会与开头相连呈环状。形式上, nums[i] 的下一个元素是 nums[…

目录

一.题目

二.解题思路

三.解题代码

 


一.题目

918. 环形子数组的最大和

给定一个长度为 n 的环形整数数组 nums ,返回 nums 的非空 子数组 的最大可能和 

环形数组 意味着数组的末端将会与开头相连呈环状。形式上, nums[i] 的下一个元素是 nums[(i + 1) % n] , nums[i] 的前一个元素是 nums[(i - 1 + n) % n] 。

子数组 最多只能包含固定缓冲区 nums 中的每个元素一次。形式上,对于子数组 nums[i], nums[i + 1], ..., nums[j] ,不存在 i <= k1, k2 <= j 其中 k1 % n == k2 % n 。

示例 1:

输入:nums = [1,-2,3,-2]
输出:3
解释:从子数组 [3] 得到最大和 3

示例 2:

输入:nums = [5,-3,5]
输出:10
解释:从子数组 [5,5] 得到最大和 5 + 5 = 10

示例 3:

输入:nums = [3,-2,2,-3]
输出:3
解释:从子数组 [3] 和 [3,-2,2] 都可以得到最大和 3

提示:

  • n == nums.length
  • 1 <= n <= 3 * 104
  • -3 * 104 <= nums[i] <= 3 * 104

二.解题思路

动态规划解法:

   

    g[i] 表示以i位置为结尾的所有子数组的最小和

    环形数组的子数组的最大和有两种情况:

    1.拥有最大和的子数组就在数组的中间

    2.环形数组的头部和尾部共同组成了拥有最大和的子数组

    我们只需要求两种情况的最大值,再确定哪种更大返回即可

    对于1:

     f[i] 表示以i位置为结尾的所有子数组的最大和

     当长度为1时,子数组的最大和为nums[i]

     当长度大于1时,子数组的最大和nums[i]+f[i-1]

    状态转移方程: f[i]=Math.max(nums[i],f[i-1]);

    对于2:

    转化为求数组中间的最小子数组和,用数组总和sum-数组中间的最小子数组和(gmin)

    同理:

    最小和的状态转移方程: g[i]=Math.min(nums[i],g[i-1]);

    初始化:可以添加一个虚拟的头部,在状态数组里多开一个空间,填入0

     可以使填了0可以使原来的结果不变,f[0]=g[0]=0,

     循环填状态方程时就可以直接从1开始,状态数组多加了一个格子,注意下标映射

     原数组nums[i]变成nums[i-1]

     返回值:注意如果数组全部为负数如 [-1,-2,-3],

     那么最大的子数组应该在数组中间,直接返回fmax

三.解题代码

public int maxSubarraySumCircular(int[] nums) {int n=nums.length;int[] f=new int[n+1];int[] g=new int[n+1];int fmax=Integer.MIN_VALUE;int gmin=Integer.MAX_VALUE;int sum=0;for(int i=1;i<=n;i++){sum+=nums[i-1]; //求总数组和f[i] = Math.max(nums[i-1],nums[i-1] + f[i-1]);fmax = Math.max(fmax,f[i]);//求数组中间的最大子数组和g[i] = Math.min(nums[i-1],nums[i-1] + g[i-1]);gmin = Math.min(gmin,g[i]);//求数组中间的最小子数组和} //判断数组是否全为负数,如果是直接返回fmax,不是判断1,2情况哪个大return  sum==gmin ? fmax:Math.max(fmax,sum-gmin);}
}

 

http://www.yayakq.cn/news/628696/

相关文章:

  • 企业网站建站价格做淘宝头像的网站
  • 中国建设银行假网站上海集团网站建设公司好
  • 电商网站首页怎么制作阿里巴巴建站多少钱
  • 山西建设工程信息网站o2o平台有哪些国内
  • 怎么用手机制作网站知识产权教育网站建设方案
  • 拼多多网站怎么建设的东莞seo排名优化公司
  • php网站开发需求文档海淀发布会
  • 深圳红酒网站建设亚泰国际建设股份有限公司网站
  • 用dw做网站时怎么添加弹窗西域电商平台官网
  • 网站搭建合同范本揭阳网站建设公司哪个好
  • 有域名有空间怎么做网站wordpress拖拽上传
  • 线在科技成都网站推广公司织梦模板安装详细教程
  • 南京网站设计建设十佳工业设计公司
  • 上海做公司网站wordpress建站教程阿里云
  • 上海网站制作设计公司微信文章导入wordpress
  • 银川网站建设一条龙wordpress 二次元主题
  • 企业网站首页设计评价南阳seo网站推广费用
  • 花型图案设计网站佘山做网站
  • 自己做外贸自己做网站网站基础建设英文翻译
  • 有域名有服务器如何做网站cms系统源码
  • 网站建设维护保密协议专业开发小程序的公司
  • 帮别人做数学题赚钱的网站杭州it公司排名
  • 网站模版可以修改吗使用网站模板快速建站教案
  • 北京微信网站开发费用住房和城乡建设网站方案
  • 流量多网站高端大气的网站模板
  • 网站用什么cms如何介绍设计的网站模板
  • 做外贸找客户的网站dedecms模板安装教程
  • 完全删除wordpress扬中企业网站优化哪家好
  • 网站只做1单生意被罚4万两级违法缙云 网站建设
  • 团购网站怎么推广注册深圳公司有什么好处