【算法】最大子数组和的动态规划算法,Java实现
  TEZNKK3IfmPf 2024年07月27日 33 0
import java.util.Random;

public class MainClass {
    public static void main(String[] args) {
        int[] array = new int[10];

        //生成随机测试数据,数据集里面必须有正有负。
        for (int i = 0; i < array.length; i++) {
            Random random = new Random();
            array[i] = (int) (Math.random() * 10) * (random.nextBoolean() ? 1 : -1);
        }

        //打印数据集
        System.out.println("测试的随机数组:");
        for (int n : array) {
            System.out.print(n + " ");
        }

        System.out.println("\n最大子数组和:");
        System.out.println(maxSub(array));
    }

    //最大子数组和的动态规划算法
    public static int maxSub(int[] array) {
        int retSum = 0;

        int sum = 0;
        int tempSum = 0;

        for (int i = 0; i < array.length; i++) {
            if (sum > 0) {
                sum = sum + array[i];

                if (sum > tempSum) {
                    tempSum = sum;
                }
            } else {
                sum = array[i];
            }

            retSum = Math.max(retSum, sum);
        }

        return retSum;
    }
}

测试几轮数据集输出如下:

【算法】最大子数组和的动态规划算法,Java实现

【算法】最大子数组和的动态规划算法,Java实现

【算法】最大子数组和的动态规划算法,Java实现

【算法】最大子数组和的动态规划算法,Java实现

【算法】最大子数组和的动态规划算法,Java实现

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年07月27日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   9天前   16   0   0 编程开发
TEZNKK3IfmPf