大佬们,我这种做法对吗? public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; // 读取数据 for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } long sum = 0L; // dp[l][r]记录[l..r]区间的最大值是什么 int[][] dp = new int[n][n]; // 初始情况 区间只有一个元素 => dp[i][i] = arr[i] for (int i = 0; i < n; i++) { dp[i][i] = arr[i]; sum += arr[i]; } // 从区间长度为2的时候开始计算dp 区间长度为 i = l-r+1 for (int i = 2; i <= n; i++) { // 左端点从0开始,右端点不能大于n 为结束条件 for (int l = 0; i + l -1 < n ; l++) { int r = i + l - 1; dp[l][r] = Math.max(arr[r], dp[l][r-1]); // 累加最大值 sum += dp[l][r]; } } int totalCount = (n+1)*n/2; double res = (double) sum / totalCount; System.out.format("%.6f", res); }
点赞 评论

相关推荐

zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务