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

b2c电子商务网站建设费用企业管理培训课程网课免费

b2c电子商务网站建设费用,企业管理培训课程网课免费,seo经验,人工智能在未来可以题目: 给你一个整数数组 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/451148.html

相关文章:

  • 制作一个网站怎么做的哪家公司做推广优化好
  • 如何不备案建网站专业软文
  • 系统门户网站建设常用功能企业网站建设案例
  • 中国国际贸易网官网平台快速seo整站优化排行
  • 济源制作网站中国第一营销网
  • 关于政府网站建设请示卡cps广告联盟平台
  • 新疆好地方app谁开发的seo技术公司
  • 怎样制作企业的网站seo搜索引擎优化求职简历
  • 猎头招聘网官网郑州专业seo推荐
  • 长清网站建设电话湖南关键词优化品牌价格
  • 58同城网站建设的不足快排seo
  • 河源市连平县建设局网站网络营销的六大特征
  • 网站风格配置怎么做在线网站排名工具
  • 箱包官方网站模板百度友情链接
  • 可以做图接单的网站网站创建
  • 做淘宝有哪些推广网站百度一下网址是多少
  • 襄阳大型网站建设站长工具推荐网站
  • 上海做网站的公司哪家好成都网站排名 生客seo
  • 郑州华久做网站广东企业网站seo报价
  • 网站定制开发建设百度网页广告怎么做
  • 烟台百度网站建设推广中山seo推广优化
  • 推广赚钱网搜索引擎优化人员优化
  • 灵犀科技网站建设网络营销渠道可分为
  • 门户网站需要多少空间软文模板
  • 常德网站建设厦门网站制作交换友情链接的目的
  • 哪些网站做写字楼出租百度提交入口网站网址
  • 装修公司手机网站模板网站运营主要做什么工作
  • 佛山专业网站建设公司沈阳百度seo
  • 适合大学生做兼职的网站有哪些长尾词和关键词的区别
  • 测评网站架构手机访问另一部手机访问文件