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

网站源代码查看百度网址大全 旧版本

网站源代码查看,百度网址大全 旧版本,商城小程序开发多少钱,罗湖做网站公司👨‍🏫 题目地址 无后效性 为了保证计算子问题能够按照顺序、不重复地进行,动态规划要求已经求解的子问题不受后续阶段的影响。这个条件也被叫做「无后效性」。换言之,动态规划对状态空间的遍历构成一张有向无环图,遍…

👨‍🏫 题目地址

在这里插入图片描述


无后效性

为了保证计算子问题能够按照顺序、不重复地进行,动态规划要求已经求解的子问题不受后续阶段的影响。这个条件也被叫做「无后效性」。换言之,动态规划对状态空间的遍历构成一张有向无环图,遍历就是该有向无环图的一个拓扑序。有向无环图中的节点对应问题中的「状态」,图中的边则对应状态之间的「转移」,转移的选取就是动态规划中的「决策」。

关键 1:理解题意

题目要我们找出和最大的连续子数组的值是多少,「连续」是关键字,连续很重要,不是子序列。

题目只要求返回结果,不要求得到最大的连续子数组是哪一个。这样的问题通常可以使用「动态规划」解决。

关键 2:如何定义子问题(如何定义状态)

设计状态思路:把不确定的因素确定下来,进而把子问题定义清楚,把子问题定义得简单。动态规划的思想通过解决了一个一个简单的问题,进而把简单的问题的解组成了复杂的问题的解。

🍻 DP

public class Solution {public int maxSubArray(int[] nums) {int n = nums.length;int[] f = new int[n];// 记录nums[i]结尾的最大连续数组和f[0] = nums[0];int ans = f[0];for (int i = 1; i < n; i++){f[i] = Math.max(f[i - 1] + nums[i], nums[i]);ans = Math.max(ans, f[i]);}return ans;}
}

🍻 DP优化空间

public class Solution {public int maxSubArray(int[] nums) {int pre = 0;int res = nums[0];for (int num : nums) {pre = Math.max(pre + num, num);res = Math.max(res, pre);}return res;}
}

🍻 分治

public class Solution {public int maxSubArray(int[] nums) {int len = nums.length;if (len == 0) {return 0;}return maxSubArraySum(nums, 0, len - 1);}private int maxCrossingSum(int[] nums, int left, int mid, int right) {// 一定会包含 nums[mid] 这个元素int sum = 0;int leftSum = Integer.MIN_VALUE;// 左半边包含 nums[mid] 元素,最多可以到什么地方// 走到最边界,看看最值是什么// 计算以 mid 结尾的最大的子数组的和for (int i = mid; i >= left; i--) {sum += nums[i];if (sum > leftSum) {leftSum = sum;}}sum = 0;int rightSum = Integer.MIN_VALUE;// 右半边不包含 nums[mid] 元素,最多可以到什么地方// 计算以 mid+1 开始的最大的子数组的和for (int i = mid + 1; i <= right; i++) {sum += nums[i];if (sum > rightSum) {rightSum = sum;}}return leftSum + rightSum;}private int maxSubArraySum(int[] nums, int left, int right) {if (left == right) {return nums[left];}int mid = left + (right - left) / 2;return max3(maxSubArraySum(nums, left, mid),maxSubArraySum(nums, mid + 1, right),maxCrossingSum(nums, left, mid, right));}private int max3(int num1, int num2, int num3) {return Math.max(num1, Math.max(num2, num3));}
}

👨‍🏫 参考地址

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

相关文章:

  • 互联网 网站建设wordpress 修改浏览量
  • 下了网站建设用阿里云服务器搭建wordpress
  • 网站开发前端技术wordpress 传到哪里去
  • 外贸产品网站建设电商运营多少钱一个月
  • 各类网站建设用ps如何做网站首页
  • 博尔塔拉州大型网站建设网站制作时
  • 长沙网站建设好处h5页面用什么软件
  • 泉州大型网站设计公司公司建设网站能提升什么竞争力
  • 万网 网站模板软件排名工具
  • 帝国cms做中英文网站淘宝交易指数换算工具
  • 做瓷砖在什么网站上找素材好网站建设企业蛋糕
  • 昆明 五华 网站建设微博同步到wordpress
  • 照着别人网站做整套网站模板
  • 深圳国网站建设wordpress 弹窗
  • 推介做界面的网站无网站营销
  • 网站制作软件工程师网址之家
  • 章丘网站优化与传统营销相比网络营销的优势
  • 公司网站内容编辑php商城网站开发
  • 如何做企业交易网站南宁房地产信息网
  • 河北集团网站建设团队介绍网站建设
  • 网站公司架构wordpress上传小视频
  • wordpress 网站排名优化h5制作软件没有广告
  • 东莞企业网站建设公司企业网站趋势
  • 网站自动屏蔽恶意点击官网建设报价
  • 怎么快速搭建网站设计家装修网站
  • 高碑店市建设局网站购买域名一般多少钱
  • 代理网站备案表昆山移动网站建设
  • 榆林网站优化做游戏平面设计好的素材网站有哪些
  • 如何建立一个网站分享教程江阳建设集团网站
  • 网站title是什么开元棋牌网站怎么做