标签:
经常会遇到类似下面这种问题:
给你n个数,由0和1组成,问1或者0的最大连续长度是多少
110001101的最大连续长度就是中间3个连续的0,所以是3
这里稍微总结出了一个取尺法,以后遇到这样的题目就不需要再思考太多细节了
int L, R = 1, ans = 0; for(L = 1; L <= n; L = R + 1) { for(R = L; R + 1 <= n && B[L] == B[R + 1]; R++); ans = max(ans, R - L + 1); }其中n是数组的长度,下标从1开始,B表示对应的数组
这样得到的ans就是最大连续长度了
如果是需要对1的连续区间进行处理的话,也只需要把更新ans那句话加上判断,判断这个区间的某一个是否为1,然后再进行处理就行了
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/qwb492859377/article/details/47679861