zoukankan      html  css  js  c++  java
  • Java:求一个数组中连续子元素最大和


    public class TestArray {
    public static int FindGreatestSumOfSubArray(int[] array) {
    if (array.length==0 || array==null) {
    return 0;
    }
    int currentSum =0; //存储当前连续n项的和
    int max = array[0]; //初始化第一个数为连续子元素最大和
    for (int i = 0; i < array.length; i++) {
    //核心部分,好好理解.
    if(currentSum<=0){ //如过当前连续n项的和小于等于0,则没必要与后面的元素相加
    currentSum = array[i]; //currentSum重新赋值
    }else{
    currentSum += array[i]; //如果currentSum的值大于0,则继续与后面的元素相加,
    }
    if(currentSum>max){ //每次改变currentSum的值都有与max进行比较
    max = currentSum; //如果currentSum的值大于max,则将currentSum的值赋值给max
    }
    }
    return max;
    }
    public static void main(String[] args) {
    int[] array = {6,-3,-2,7,-15,1,2,2};
    // int[] array = {-6,-3,-2,-7,-15,-1,-2,-2};
    int result = FindGreatestSumOfSubArray(array);
    System.out.println("连续子元素的最大和为:"+result);
    }
    }
    连续子元素的最大和为:8

    ---------------------

  • 相关阅读:
    SDN第二次上机作业
    SDN第二次作业
    SDN第一次上机作业
    个人作业-软件产品案例分析
    pandas之Series
    pandas简答介绍
    python爬取英文名
    python爬取动态网页
    python画树
    Python存储数据的方式
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11257587.html
Copyright © 2011-2022 走看看