题目描述
给出一个数组,将这个数组分为若干个和不大于m的段,求最少分几个
思路
边读边做,贪心求解
O(n)
#includeint main() { int n,m; scanf("%d%d",&n,&m); int ans=0,t=0; for (int i=1;i<=n;i++) { int x; scanf("%d",&x); if (t+x<=m) t+=x; else { t=x; ans++; } } if (t>0) ans++; printf("%d\n",ans); }
Comments NOTHING