import java.util.*;

public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型一维数组 * @return int整型一维数组 */ public int[] FindGreatestSumOfSubArray (int[] array) { int[] dp = new int[array.length]; dp[0] = array[0]; int start = 0,end = 0; int start_l = 0,end_l = 0; int max = dp[0]; for(int i = 1;i < dp.length;i++) { end++; if(dp[i-1]+array[i] < array[i]) { dp[i] = array[i]; }else { dp[i] = dp[i-1]+array[i]; }

    	if(dp[i-1]+array[i] < array[i]) {
    		start = end;
    	}
    	if(max<=dp[i] && (end-start)>=(end_l-start_l)) {
    		max = dp[i];
    		start_l = start;
    		end_l = end;
    	}
        if(max < dp[i]) {
    		max = dp[i];
    		start_l = start;
    		end_l = end;
    	}
    }
	
    int[] arr = new int[end_l - start_l +1];
    for(int i = 0;i < arr.length;i++) arr[i] = array[i+start_l];
	return arr;
}

}