腾讯遮体是否可以这样,因为不能排序,所以数据其实没有规律,直接dp感觉是没法做到的,只能采用for循环,但是可以优化,程序还有优化空间,但是不想优化了
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class findSubsegmentMax {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		String[] str_1 = str.split(" ");
		List<Integer> list = new ArrayList<Integer>();
		for(int i=0; i<str_1.length; i++) {
			list.add(Integer.parseInt(str_1[i]));
		}
		int n = list.size(), maxNum=0;
		System.out.println("n: " + n);
		int[] res;
		for(int i=0; i<list.size(); i++) {
			while(i < n) {
				res = find(list, i, n);
				if(maxNum < res[0]) maxNum = res[0];
				n = res[1] - 1;
			}
			n = list.size();
		}
		System.out.println(maxNum);
	}
	
	public static int[] find(List<Integer> list, int m, int n) {
		Integer min=list.get(m), sum=0, index=-1;
		for(int i=m; i<n; i++) {
			if(min > list.get(i)) {
				min = list.get(i);
				index = i;
			}
			sum += list.get(i);
		}
		sum *= min;
//		System.out.println("sum and index: " + sum + " " + index);
		int[] ret = {sum, index};
		return ret;
	}

}