第一题思路:(测试全通过)题目条件是每次从1到x每个盘子吃去1个烧饼,假设在s[0]到s[x-1]当中,s[x-1]最小,那么这个范围能吃s[x-1]遍,直至把它吃完,再从左边选一个新的x。也就是说,靠右侧的较小值限定了在其左侧盘子中同时能吃到烧饼的数量。所以我们可以从0开始遍历,每次更新访问过的最小值,用作限定在这个盘子最终能吃到的最大值。讲的可能不太清楚,这里给个伪码吧。 long cnt = s[0]; long tmpMin = s[0]; for (long i = 1; i < N; ++i) { tmpMin = Math.min(tmpMin, s[i]); cnt += tmpMin; } System.out.println(cnt);
点赞 2

相关推荐

10-25 22:20
门头沟学院 Java
代码飞升_不回私信人...:同学院本,个人亮点去了,打招呼里面的废话也去了,学院本就是路边一条,明天拉满然后该学还是学,小厂也行尽量先有一段实习。另外你的项目描述写的不好,具体列一下可被提问的点,然后量化一下指标或者收益吧
投了多少份简历才上岸
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务