连续子数组求和
来源:互联网 发布:7号外设淘宝店网址 编辑:程序博客网 时间:2024/05/21 06:59
给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大。输出答案时,请分别返回第一个数字和最后一个数字的下标。(如果两个相同的答案,请返回其中任意一个)
样例
样例
给定 [-3, 1, 3, -3, 4], 返回[1,4].
package com.nuaa.sg;import java.util.ArrayList;import java.util.Scanner;/** * 给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大。输出答案时,请分别返回第一个数字和最后一个数字的下标。(如果两个相同的答案,请返回其中任意一个)样例给定 [-3, 1, 3, -3, 4], 返回[1,4]. * * @author Dell * */public class Test402 { public static ArrayList<Integer> continuousSubarraySum(int[] A) { if(A==null||A.length==0) return null; ArrayList<Integer> list=new ArrayList<Integer>(); int sum=0; int start=0; int end=0; int max=Integer.MIN_VALUE; int t=0; for(int i=0;i<A.length;i++) { sum=sum+A[i]; if(sum>=max) { max=sum; start=t; end=i; } if(sum<0) { sum=0; t=i+1; } } list.add(start); list.add(end); return list; }public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int[] a=new int[n]; for(int i=0;i<a.length;i++) { a[i]=sc.nextInt(); } ArrayList<Integer> list=continuousSubarraySum(a); System.out.println(list);}}
阅读全文
0 0
- 连续子数组求和
- 连续子数组求和
- 连续子数组求和
- 连续子数组求和
- 连续子数组求和
- LintCode : 连续子数组求和
- LintCode: 连续子数组求和
- lintcode,连续子数组求和
- 连续子数组求和-LintCode
- LintCode解题笔记 - 连续子数组求和
- 算法学习-连续子数组求和最大值
- 算法学习-连续子数组求和最大值
- 算法学习-连续子数组求和最大值
- 算法学习-连续子数组求和最大值
- lintcode(402)连续子数组求和
- lintcode刷题--连续子数组求和
- 最大连续子序列求和
- “一个数组有正负0,求和为0的最长连续子数组”的失败解法
- Mysql命令行操作
- 【Mysql】select,数据简单查询整理总结
- AJAX学习(一)ajax发送请求
- String类
- 实现密码眼功
- 连续子数组求和
- 2017山东省赛C题(SDUT3895逆元法求组合数)
- 数组与链表的比较
- 欢迎使用CSDN-markdown编辑器
- 深入理解javascript原型和闭包(1)——一切都是对象
- 静、动态绑定和JVM机制的分析
- Codeforces 803 B. Distances to Zero 模拟
- servlet 过滤器 监听器
- 如何实现用户的历史记录功能(最多n条)