首页 > 代码库 > 算法题:找出一个数组中相加值最大的连续序列元素
算法题:找出一个数组中相加值最大的连续序列元素
package arithmetic;/** * @author SHI * 求一个数组中相加值最大的连续序列元素 */public class MaxSequence { public static void main(String[] args) { int[] a=new int[]{-2,9,-3,4,-6,7,-6,4}; findBigSequence(a); } /** * 思想: (1)计算出该数组的所有元素和,假设该值为最大 * (2)从数组下标1到a.length-1依次求和,每循环求得一个值就与假设的最大值比较 * @param a */ public static void findBigSequence(int[] a) { int sum = 0; for(int i=0;i<a.length;i++) { sum += a[i]; } int max = sum; int start = 1; int flag = 0; int sum1 = 0; //比较,满足条件就交换 for(;start<a.length;start++) { sum1 += a[start]; if(max < sum1) { max = sum1; flag = start; } } //打印找到的序列元素 for(int i = 0;i<flag;i++) { System.out.print(a[i] + " "); } }}
算法题:找出一个数组中相加值最大的连续序列元素
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。