和最大连续子数组
来源:互联网 发布:行知职业技术学校 编辑:程序博客网 时间:2024/05/22 11:45
给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大。输出答案时,请分别返回第一个数字和最后一个数字的下标。(如果两个相同的答案,请返回其中任意一个)
给定 [-3, 1, 3, -3, 4], 返回[1,4].
数组无大于零元素
找出最大的负数即可
数组有大于零元素
标记非零元素起始下标,与后面元素进行累加,记为最大数组和,若和大于当前最大数组和,则标记元素结束下标.
public class Solution { /** * @param A an integer array * @return A list of integers includes the index of the first number and the index of the last number */ //可以用数组前缀和方法,时间和空间都不是最优,没有采用 public class NSum{ int n; int sum; public NSum(int n,int sum){ this.n = n; this.sum = sum; } } public ArrayList<Integer> continuousSubarraySum(int[] A) { // Write your code here int Rb,Re,Max,tb,ts,MaxId; Max = Integer.MIN_VALUE; MaxId = Rb = Re = ts = tb = 0; for(int i=0;i<A.length;++i){ ts += A[i]; if(ts < 0){ tb = i+1; ts = 0; }else if(ts > Max){//更新最大和及其范围 Rb = tb; Re = i; Max = ts; } if(A[i] > A[MaxId]) MaxId = i; } if(Rb==0&&Re==0) Rb = Re = MaxId; ArrayList<Integer> R = new ArrayList<Integer>(); R.add(Rb); R.add(Re); return R; }}
0 0
- 连续子数组最大和
- 连续最大子数组和
- 连续子数组最大和
- 最大连续子数组和
- 连续子数组最大和
- 最大连续子数组和
- 最大连续子数组和
- 最大连续子数组和
- 最大连续子数组和
- 最大连续子数组和
- 最大连续子数组和
- 最大连续子数组和
- 最大连续子数组和
- 最大连续子数组和。
- 最大子数组和(连续)
- 最大连续子数组和
- 最大连续子数组和
- 最大连续子数组和
- java查询文件大小写路径问题
- 进程和线程之由来
- 网校平台,点播录播直播社区一样不能少!
- form表单的两种提交方式,submit和button的用法
- BeanUtils.copyProperties()-个人总结
- 和最大连续子数组
- TPS和事务响应时间的关系、计算公式
- maven install时报:Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME
- JDK1.8环境下导入项目到Eclipse中报错,提示要移除“@Override” 注解,报错原因与解决方法
- python精句收集
- Codeforces Round #390 (Div. 2)D Fedor and coupons
- Spring的《XML显式装配bean》- XML自动装配
- android下载新版本并更新(DownLoadManager、HttpURLConnection)
- CentOS Oracle数据库每天自动备份