博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求最大区间,使得特定的两个数的个数相等
阅读量:4320 次
发布时间:2019-06-06

本文共 894 字,大约阅读时间需要 2 分钟。

题意:在只有0 1 的字符串中,找到最大区间值使得0和1的个数相等
题解:可以利用前缀和1 则sum++,0则sum--,在之后遇到相同的sum值时,减去之前出现该sum的最小下标,然后更新答案,即可。

#include
using namespace std;typedef long long ll;typedef long double db;typedef pair
pii;typedef vector
vi;#define de(x) cout << #x << "=" << x << endl#define rep(i,a,b) for(int i=a;i<(b);++i)#define all(x) (x).begin(),(x).end()#define sz(x) (int)(x).size()#define pb push_back#define fi first#define se secondconst int N = 1e5+5;map
mp;char str[N];int main(){ int n; int sum=0,ans=0; scanf("%d",&n); scanf("%s",str+1); mp[0]=0; for(int i=1;i<=n;i++) { if(str[i]=='1') sum++; else sum--; if(mp.count(sum)) { ans=max(ans,i-mp[sum]); } else mp[sum]=i; } cout<
<

转载于:https://www.cnblogs.com/q1076452761/p/7729959.html

你可能感兴趣的文章
ip代理池抓取qq音乐热歌前300
查看>>
Android面试题集合
查看>>
Android NDK开发
查看>>
Centos中安装和配置vsftp简明教程
查看>>
spring源码学习之AOP(一)
查看>>
AES加密算法动画演示
查看>>
三种方法实现调用Restful接口
查看>>
php第五节(字符串函数和时间、日期函数)
查看>>
magento主页限制某个目录的产品显示数量
查看>>
SpringBoot整合Netty
查看>>
MongoDB数据库的基本操作
查看>>
PAT乙级1014
查看>>
ORACLE wm_concat自定义
查看>>
[Zend PHP5 Cerification] Lectures -- 6. Database and SQL
查看>>
[Drupal] Using the Administrator theme whenever you want.
查看>>
【Hibernate框架】关联映射(一对一关联映射)
查看>>
【算法】大数乘法
查看>>
WPF解析PPT为图片
查看>>
JavaScrict中的断言调试
查看>>
密码服务
查看>>