题目要求
P1614题目链接
既然是要求最小连续和,那就需要存储连续的M个数据,还需要保存最小的和以及当前的和。
先开循环,把M和数据读入M长度数组中,保存好数据,完成求和。
接下来就是后续处理了。 试想:如果我们不存储每个数,那后续就没法进行了…… 所以每个数都要存储,但不能每次都全部折腾一遍,那怎么办呢? 就嘿嘿嘿,用类似循环队列的数组吧,只不过这个队列必然是满的,每次都是换下去一个而已。 怎么实现呢?其实很简单,就需要一个int类型的指针,标记最早进入数组的一个数据的索引就可以啦。 变更pointer的代码是pointer = (pointer+1)%range;
过程中的操作,多仔细一些就好啦。
AC代码(Java语言描述)import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt(), range = scanner.nextInt(), sum = 0, pointer = 0, tempSum;
int[] array = new int[range];
for (int i = 0; i
关注
打赏
热门博文
- 【Linux】Ubuntu20.04安装和卸载MySQL8
- 【Linux】Ubuntu 20.04 报错 curl: (23) Failure writing output to destination 的解决方法
- 【Java】JUnit 4.13.2 警告 ‘assertEquals(double, double)‘ is deprecated 的解决方法
- 【JavaScript】处理 @parcel/transformer-js: Browser scripts cannot have imports or exports.
- 【Node.js】Windows环境安装配置NVM和Node.js
- 【Python】处理TypeError: Plain typing.NoReturn is not valid as type argument
- 【Python】Matplotlib可视化50例
- 【C语言】C语言修改MySQL数据库
- 【Java】从默认包导入类和对象报错的解决方法
- 【Java】panel.getGraphics()报错空指针异常的解决方法