本文主要是介绍最大和子序列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定一个数组,里面的数有正有负,如何得到该数组中,最大和的子序列呢?
得到最大和子序列,那么就先求最大和嘛,在求最大和的过程中记录一下起始下标和终点下标就好了。
下面列出代码:
public void maximumSubsequence (int arr[]) {int max = arr[0];int sum = 0;int s = 0,start = 0,end = 0;for (int i = 0; i < arr.length; i++) {sum += arr[i];if (sum > max) {max = sum;start = s;end = i;//记录终点下标}if (sum <= 0) {sum = 0;s = i+1;//更新起始下标}}System.out.println("从:"+start+"到"+end);System.out.println(max);}
这篇关于最大和子序列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!