题目:
小b有一个01序列,她想找到一个最长的区间使得这个区间的01能两两配对,即0的个数和1的个数相等。求最长区间的长度。
输入
第一行一个正整数n,表示数组长度,其中0<n≤50000;
第二行n个0或1,以空格隔开。
输出
输出一个数,表示最长区间的长度
输入样例
1 | 3 |
输出样例
1 | 2 |
解法:
将0当做-1处理,处理前缀和,记录前缀和相同的位置,计算出前缀和相同位置的最长距离。
代码:
1 | #include<stdio.h> |
小b有一个01序列,她想找到一个最长的区间使得这个区间的01能两两配对,即0的个数和1的个数相等。求最长区间的长度。
第一行一个正整数n,表示数组长度,其中0<n≤50000;
第二行n个0或1,以空格隔开。
输出一个数,表示最长区间的长度
1 | 3 |
1 | 2 |
将0当做-1处理,处理前缀和,记录前缀和相同的位置,计算出前缀和相同位置的最长距离。
1 | #include<stdio.h> |