- public class Demo {
- public static void main(String[] args) {
- int[] arr = { 4, -3, 5, -2, -1, 2, 6, -2 };
-
- //定义一个变量接受最后的最大值
- int big = arr[0];
- //定义为数组中任意一个元素,如果定义0,在数组都为负数情况下会计算错误
-
- //外围for循环取得某一子序列的开始位置,内层for循环取得任意子序列的结尾位置
- for (int i = 0; i < arr.length; i++) {
- for (int j = i; j < arr.length; j++) {
- if (sum(arr, i, j) > big) {//如果某个子序列和大于big,将该值赋给big
- big = sum(arr, i, j);
- }
- }
- }
- System.out.println(big);//打印输出最后的big值
- }
-
- //定义一个函数,计算出给出数组中从i角标开始到角标结束之间元素的和
- public static int sum(int[] arr, int i, int j) {
- int sum = 0;
- for (int k = i; k <= j; k++) {
- sum += arr[k];
- }
- return sum;//返回计算的结果
- }
- }
复制代码 |