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

建行官方网站 - 百度wordpress 手机页面

建行官方网站 - 百度,wordpress 手机页面,手机链接网页怎么制作,网站页面布局分析题目: 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 解题思路: 方法一:看到子数组和,首…

题目:
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组是数组中的一个连续部分。

解题思路:
方法一:看到子数组和,首先可以想到子数组和=前缀和之差,要找到最大子数组和,我们可以枚举nums中的元素x,找出以元素x结尾的最大子数组和,然后更新答案。

要寻找以元素x结尾的最大子数组和,我们只需要知道x元素之前的最小子数组和。所以需要一个变量minPreSum记录x元素之前的最小子数组和,那么以元素x结尾的最大子数组和=preSum - minPreSum。

class Solution {public int maxSubArray(int[] nums) {int preSum = 0;int minPreSum = 0;int ans = nums[0];for(int num : nums){preSum += num;ans = Math.max(ans, preSum - minPreSum);minPreSum = Math.min(minPreSum, preSum);}return ans;}
}

方法二:动态规划。要知道以x结尾的最大子数组和,我们可以通过以x-1结尾的最大子数组和推导出来。状态转移方程为dp[i] = max(dp[i-1] + nums[i], nums[i]),dp[i]表示以i结尾的最大子数组和,在枚举i的过程中更新答案。

class Solution {public int maxSubArray(int[] nums) {int n = nums.length;int[] dp = new int[n];dp[0] = nums[0];int ans = dp[0];for(int i = 1; i < n; i++){dp[i] = Math.max(dp[i-1] + nums[i], nums[i]);ans = Math.max(dp[i], ans);}return ans;}
}

优化:
因为在计算dp[i]的过程中只会用到dp[i-1],所以我们可以用一个变量来代替。

class Solution {public int maxSubArray(int[] nums) {int ans = nums[0];int x = 0;for(int num : nums){x = Math.max(x + num, num);ans = Math.max(x, ans);}return ans;}
}
http://www.yayakq.cn/news/696590/

相关文章:

  • 四川网站网站建设怎么在百度上发表文章
  • 鞍山市残疾人网站开发wordpress php环境
  • 备案ip 查询网站查询网站查询南京网站优化方案
  • 网站建设黄页视频wordpress调整语言
  • 已有网站开发app终端陕西网络公司网站建设
  • 网站建设通俗讲小程序电商系统开发
  • 网站设计过程中需要注意的问题温州网站排名团队
  • 长春建网站短链生成网站
  • 网站后台模板 仿cnzz网站建设方案基本流程
  • 南宁网站建站推广平台建设费用包括哪些
  • 常州建设局网站appui设计图
  • 能看任何网站的浏览器做外贸营销网站销售咋样
  • 站长之家域名解析注册安全工程师科目
  • 公司官方网站一般什么公司做找人做短视频网站
  • 可以做点赞的网站赚钱wordpress如何优化速度
  • 音乐网站建设规划自己做网站卖东西可以
  • 网站无域名注册人id做网站挂广告 刷广告
  • 唐山网站建设优化嵌入式开发的系统
  • 抚养网站建设上海住房和城市建设厅网站
  • 心理咨询网站建设做网站为什么要服务器
  • 怎样建设大型网站wordpress 社交链接
  • 南通网站排名优化价格网站设计案例公司
  • 域名备案要先做网站的吗微信h5的制作方法
  • 自个做网站教程建站教程流程图
  • 站长源码商城微网站创建
  • 网站搭建团队做网站送商标
  • o2o网站系统建设微网站和网站同步像素
  • 中国农业工程建设协会网站舆情分析网站免费
  • 网站开发中设置会员等级常宁网站制作
  • 百度收录网站入口哪家app定制开发好