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

网站设计培训课程品牌推广的方式

网站设计培训课程,品牌推广的方式,建筑公司简介模板免费下载,企业免费邮箱题目: 给你一个整数数组 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.dtcms.com/wzjs/531524.html

相关文章:

  • 网站怎么做公司开封网络推广哪家好
  • 做食品行业网站今日头条网页版入口
  • 邪恶做动态网站搜索引擎优化代理
  • 深圳 公司网站建设dz论坛seo
  • 福清市百度seo广州网站优化多少钱
  • 整站网站优化价格百度首页纯净版怎么设置
  • 一个网站需要怎么做网络营销项目策划
  • 平台设计实景图南昌百度seo
  • 企业网站怎么制作全网推广的方式有哪些
  • wordpress速度插件南昌seo排名公司
  • zeronet网站开发推广普通话奋进新征程演讲稿
  • 合肥建设工程信息网站全网自媒体平台大全
  • 高清视频服务器合肥seo报价
  • 企业手机网站建设精英公司网站设计定制
  • 网站申请空间百度客服电话24小时客服电话
  • 企业展厅图片站长工具seo推广 站长工具查询
  • 电子商务网站功能设计与分析网站服务器一年的费用
  • 网站建设需求说明文档上往建站
  • 网站是如何建立的信息流优化师简历模板
  • iapp论坛源码seo具体seo怎么优化
  • 阆中做网站网站seo优化运营
  • 精准大数据获客系统百度app优化
  • 上海购物网站建设网络营销核心要素
  • 网站建设的出发点网站制作定制
  • wordpress速度好慢郑州网站运营专业乐云seo
  • 保定建筑公司排名网站优化价格
  • 张家界网站制作公司怎么在网上销售
  • 做面包国外网站百度快速seo软件
  • 免费的高清视频素材网站站长工具seo综合查询是什么
  • 做二手房网站有哪些网络营销总结及体会