和你想法一样,实现有点不同: #include <stdio.h> #define N 100005 int main(void) { int t; scanf("%d", &t); while (t--) { int i, n, num[N]; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", num + i); int left = 0, right = n - 1, res = 0, counted = 0; while (right > left) { int min = num[left] < num[right] ? num[left] : num[right]; if (min > counted) { res += (min - counted) * (right - left); counted = min; } if (num[left] < num[right]) left++; else right--; } printf("%d\n", res); } return 0; }
3 3

相关推荐

10-14 21:00
门头沟学院 Java
吃花椒的狸猫:这个人说的倒是实话,特别是小公司,一个实习生哪里来的那么多要求
点赞 评论 收藏
分享
10-22 19:44
门头沟学院 Java
面了100年面试不知...:那我得去剪个头
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务