解题思路:由均分纸牌的思想可以得知 当区间和为0的区间个数出现最多时,所需要的移动次数是最少的,从1遍历到n 如果相同数字产生次数最多的即为区间和为0个数出现最多的次数(相同数字的产生是因为中间区间和为0),起点的位置不会影响区间和的个数,因为整体区间就那一个。
注意题目的数据类型。
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
map<
long long,
int>
m;
int main(){
int n,temp,counter;
long long sum;
scanf("%d",&
n);
sum = counter =
0;
for(
int i=
0;i<n;i++
){
scanf("%d",&
temp);
sum +=
temp;
m[sum]++
;
counter =
max(counter,m[sum]);
}
printf("%d\n",n-
counter);
}
转载于:https://www.cnblogs.com/yuanshixingdan/p/5503454.html
相关资源:JAVA上百实例源码以及开源项目