题目: 思路:把'0'当成数字-1,'1'当成数字1,求前缀和,用map更新当前前缀和最早出现的位置.(用map而不用数组是因为可能会出现负数) 当前缀和的值之前出现过,比如i = 10时,sum = 0:j = 50时,sum = 0; 更新ans = max(ans,j-i): 下面是一个例子: 代码: #include <bits\stdc++.h> using namespace std; map<int,int> m; //存前缀和最早出现的位置 ]; //数字数组 in…
1393 0和1相等串 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 给定一个0-1串,请找到一个尽可能长的子串,其中包含的0与1的个数相等. Input 一个字符串,只包含01,长度不超过1000000. Output 一行一个整数,最长的0与1的个数相等的子串的长度. Input示例 1011 Output示例 2 起点和终点的关系整理一下,有时候可以得到一种hash的思路. #include<iostream> #include<…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1393 正解一眼看出来的应该是鸽笼原理.记录每个位置的前缀和,就是dp[i][1]表示前i个数中,1的个数.dp[i][0]同理. 然后计算出每一个位置的dp[i][1] - dp[i][0],如果和前面的出现相同,那么这一段就是贡献. 也可以从化简dp公式来看. 也是一样的都dp[i][0] && dp[i][1] 那么设区间为be, en 如果要相同,则需要dp…
1393 0和1相等串 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 给定一个0-1串,请找到一个尽可能长的子串,其中包含的0与1的个数相等. Input 一个字符串,只包含01,长度不超过1000000. Output 一行一个整数,最长的0与1的个数相等的子串的长度. Input示例 1011 Output示例 2 记录每一个字符时所含有的1个个数与0的个数,一个字串包含的0和1的个数相等,就是首尾处1的个数与0的个数的差值相等.所以对于…
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1393 题意:中文题面. 把0看成是-1,并且存一遍前缀和.这样-1和1相等数量的时候前缀和为0,这个特判一次.还有就是区间[l,r]和为0的时候的充要条件是s[r]-s[l]=0,得解. #include <bits/stdc++.h> using namespace std; ; char str[maxn]; int t[maxn], s[maxn];…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1433 思路: 数论中关于9的倍数的理论:若是一个数能被9整除,则各位数之和为9的倍数. 因为这题是90的倍数,所以至少得有一个0. 分别统计0和5的个数,9个5相加的话就是9的倍数,计算出能有几个9个5,剩下的0全排最后就可以了. #include<iostream> #include<algorithm> #include<cstring>…
开源地址:https://github.com/tangxuehua/enode 上一篇文章,简单介绍了enode框架内部的整体实现思路,用到了staged event-driven architecture的思想.通过前一篇文章,我们知道了enode内部有两种队列:command queue.event queue:用户发送的command会进入command queue排队,domain model产生的domain event会进入event queue,然后等待被dispatch到所有的…
最近看了vue2.0源码关于响应式的实现,以下博文将通过简单的代码还原vue2.0关于响应式的实现思路. 注意,这里只是实现思路的还原,对于里面各种细节的实现,比如说数组里面数据的操作的监听,以及对象嵌套这些细节本实例都不会涉及到,如果想了解更加细节的实现,可以通过阅读源码 observer文件夹以及instance文件夹里面的state文件具体了解. 首先,我们先定义好实现vue对象的结构 class Vue { constructor(options) { this.$options = o…
好像这题是4级题下放2级? 预处理:求每个位置 x 左区间 [ 0 , x ] 中 1 比 0 多的数量和右区间 ( x , n - 1 ] 中 0 比 1 多的数量(少就是负的).相当于求两个前缀和.这样在判断 1 多还是 0 多时判断前缀和与零的大小关系就行了. 更新答案:对于字符串中的每个位置 x 的左侧,要求前缀和小于零.如果小于零,符合要求,长度即下标加一.如果大于零(设为 k ),要从头开始,找到第一个位置,这个位置的左侧 1 也比 0 多 k 个,这样把这个位置之前的串剪掉,就剩下…
开源地址:https://github.com/tangxuehua/enode 上一篇文章,介绍了enode框架的总体目标,以及如何实现高吞吐.低延迟.高可用.无单点问题的实现思路.本篇文章,我们再分析一下其他一些需要考虑的问题.我发现写文章挺累的,费时费脑经,但我会坚持下去.本文主要分析一下enode框架的物理部署: 物理部署思路:集群的web站点+分布式缓存和存储 集群的概念:多台机器做相同的业务,对外如一台机器在做事情一样,集群中任意一台机器挂了没有影响,因为其他机器还在工作:集群的机器…