给定一个数组arr={-1,2,7,-9,3,6,8,2,-10};,这里数组不定,只是一个例子。打印出连续求和,值最大的新数组。
package com.lwd.base;
public class A {public static void main(String[] args) {
int[] arr={-1,2,7,-9,3,6,8,2,-10};
int depth=0;
int flag=0;
int count=0;
int ok=10;
while(depth<ok){
count++;
int index1 = A.createRandomInt(arr.length);
int index2 = A.createRandomInt(arr.length);
if(index1>index2){
int tep=index1;
index1=index2;
index2=tep;
}
//System.out.println(index1+" "+index2);
int sum=A.sumItem(arr, index1, index2);
if(sum>flag){
flag=sum;
depth=0;
depth+=1;
}else if(flag==sum){
depth+=1;
}
if(depth==ok){
System.out.println(flag+" "+index1+" "+index2+" "+count);
}
}
}
public
static int sumItem(int[] arr,int index1,int index2){
int len=arr.length;
if(index1 < len && index2<len){
int sum=0;
for(int i=index1;i<=index2;i++){
sum+=arr[i];
}
return sum;
}else{
System.out.println("out of bounds!");
return -1;
}
}
public static int createRandomInt(int range){
return (int)(Math.random()*range);
}
}