腾讯遮体是否可以这样,因为不能排序,所以数据其实没有规律,直接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; } }
点赞 评论

相关推荐

牛客网
牛客企业服务