博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode53——Java之最大子序和
阅读量:6336 次
发布时间:2019-06-22

本文共 1806 字,大约阅读时间需要 6 分钟。

以后我要养成写博客的习惯,所以呢,先开始多记录吧。

题目:最大子序和

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例:

输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 初看题需要注意的点:这个最大和是连续的子数组。附加题:复杂度要求O(n)。 思路一(复杂度为o(n^2),不完美):从第一个数开始,让它依次和后面的数值相加,例如:a,a+b,a+b+c,a+b+c+d……,下一个轮回是:b,b+c,b+c+d……,依次类推,每次加的时候都比较一下最大值,把最大的值保留下来。 具体操作:
1 class Solution { 2     public int maxSubArray(int[] nums) { 3            int sum=0; 4             for(int i=0;i
sum){ 9 sum=tempsum;10 }11 }12 }13 if(sum==0){14 for(int i=0;i
nums[j]){17 int temp=nums[i];18 nums[i]=nums[j];19 nums[j]=temp;20 } 21 }22 }23 int len=nums.length;24 sum=nums[len-1];25 return sum;26 }else{27 return sum;28 } 29 }30 }
优化思路一的算法,达到同样的效果:
1 class Solution { 2     public int maxSubArray(int[] nums) { 3         int sum=nums[0]; 4          for(int i=0;i

思路二(复杂度为O(n)):审题看到“最大和”这几个字,就要想,既然要 求最大,那得把每种可能性都算出来,不全算出来,程序怎么敢断言现在的就是最大的呢?所以呢,肯定要有遍历这种方法,其次,要找两个数,一个数来用存当前的最大值(用sum表示),另一个数用来存之前的最大值(用res表示),然后拿着这两个数进行比较,择其大者而留之(最终结果放在res中)。

1 class Solution { 2     public int maxSubArray(int[] nums) { 3         int res = nums[0]; 4         int sum = 0; 5         for (int num : nums) { 6             if (sum > 0){ 7                 sum += num; 8             }                 9             else{10                sum = num; 11             }                12             res = Math.max(res, sum);13         }14         return res;15     }16 }

 

 

 

转载于:https://www.cnblogs.com/xiayanjiao/p/10246957.html

你可能感兴趣的文章
SQL some any all
查看>>
电子书下载:Programming Windows Identity Foundation
查看>>
有理想的程序员必须知道的15件事
查看>>
用于测试的字符串
查看>>
财付通和支付宝资料收集
查看>>
PHPCMS V9数据库表结构分析
查看>>
理解 IEnumerable 与 IEnumerator
查看>>
NHibernate 2.0 Beta 1 Released和一些工具
查看>>
【每天一个Linux命令】12. Linux中which命令的用法
查看>>
软件接口数据一致性机制
查看>>
微服务架构介绍和RPC框架对比
查看>>
Debian下使用OpenLDAP 管理端
查看>>
泛型排序器TComparer
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>
创建符合标准的、有语意的HTML页面——ASP.NET 2.0 CSS Friendly Control Adapters 1.0发布...
查看>>
Adobe驳斥Flash过度耗电论 称HTML5更耗电
查看>>
No!No!No! It's not fashion!
查看>>
艰困之道中学到的经验教训
查看>>
互联网生态建设落地五大挑战——保险科技生态建设 ...
查看>>
进行短视频app开发工作时,可以加入它来保护青少年 ...
查看>>