JAVA算法:求最大连续上升(增加)子数组的和(详细求解)

这篇博客详细介绍了如何在JAVA中解决寻找一个整型数组中最大连续上升子数组和的问题。通过问题分析和算法设计,阐述了找到满足条件的子数组的方法,并给出了实现该算法的伪代码及程序运行结果。
摘要由CSDN通过智能技术生成

JAVA算法:求最大连续上升子数组的和(详细求解)

给定含有 n 个正的非重复整数的整型数组。

问题是找出满足条件为连续增加(上升)的子数组的最大和。

解释:什么是连续上升的子数组呢?就是子数组的元素按升序排列。


问题分析

 

伪代码如下:

Let arr be the array of size n
Let result be the required sum

int largestSum(arr, n) 
    result = INT_MIN  // Initialize result

    i = 0
    while i < n

        // Find sum of longest increasing subarray
        // starting with i
        curr_sum = arr[i];
    while i+1 < n && arr[i] < arr[i+1]
              curr_sum += arr[i+1];
          i++; 

        // If current sum is greater than current
        // result.
        if result < curr_sum
            result = curr_sum; 

        i++;
return result

算法设计

package com.bean.algorithm.basic;

public class LargestSumContiguousIncreasingSubarray 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值