题目描述:
对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求。
代码:
package lanqiao;
import java.math.BigInteger;
import java.util.*;
public class Main {
static int n, m;
// static int[] a;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] a = new int[100005];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
int num = 1, sum = 0;
for (int j = 0; j < n; j++) {
if (sum + a[j] <= m) {
sum += a[j];
} else {
num++;
sum = a[j];
}
}
System.out.print(num);
}
}