大佬们,我这种做法对吗? 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); }
点赞 评论

相关推荐

工作30年还房贷:比赛加学历就已经够了。你要挑点毛病的话,项目写的不行,没有突出深度,你可能做了很多深度工作,但给别人的感觉都是做的很简单的工作。
点赞 评论 收藏
分享
牛客389580366号:读书的意义在于提升自己和他人吧,“阶级意识”是读书过程中的产出,“跨越阶级”是通过读书获得的能力
点赞 评论 收藏
分享
牛客网
牛客企业服务