网站开发属于何种合同,抖音头像的网站制作教程,网站推广软件排名,湖南产品网络营销推荐咨询文章目录题目描述代码 思路题目描述
经典题目了#xff0c;多种解法#xff08;不过目前只学了一种#xff0c;暴力不算#xff09;
代码 思路 这块基本上算是写给自己看的了。。写得不好#xff0c;如果想学这种方法最好还是去leetcode题解看。 sum num 思路题目描述
经典题目了多种解法不过目前只学了一种暴力不算
代码 思路 这块基本上算是写给自己看的了。。写得不好如果想学这种方法最好还是去leetcode题解看。 sum num因为在上一次循环结尾就已经取得了i-1结尾的子序的最大和也就是[0, i-1]的任务已经完成了继续使用无意义因为sum 0的情况下只会对后面的子序带来负增益例子112 -41 -1首先取到最大值【12】然后【12-4】时【12-4】已经无意义接下来只要对剩下的【1-1】进行判断即可。 原因首先从2开始的【2-4】肯定不如之前的【12-4】大因为之所以2之前的【1】能连上2就是因为【1】这一部分是不小于0的有正增益。然后之所以不能取【2-4】再连上后面的【1-1】是因为这肯定还不如【12-4】原理基本上同上前面的起码还是正增益舍掉了得比现在还小。
class Solution {public int maxSubArray(int[] nums) {int ans nums[0];int sum 0;// 使用动态规划时间复杂度O(n)for(int num : nums){// 取值然后舍掉因为不如不加if(sum 0){sum num;}// 否则继续下去else{sum num;}ans Math.max(ans,sum);}return ans;}
}时间复杂度O(n)一次遍历结束空间复杂度O(1)