文章

12

粉丝

0

获赞

9

访问

812

头像
字符串区间翻转 题解:ac80的原因:使用for循环太多次

因为n最大到10的7次,1s内支持1e7,所以即使时间复杂度是o(n)也得减小n前面省去的常系数,也就是说,少用for循环遍历数组

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    while(cin>>n){
        char buf[n];
        for(int i=0;i<n;i++)
            cin>>buf[i];
        int key[n];
        int cnt=0;
        for(int i=0;i<n;i++){
            if(buf[i]=='0') key[i]=1;
            if(buf[i]=='1') key[i]=-1;
            if(buf[i]=='1') cnt++;
        }
        int maxn=key[0];
        for(int i=1;i<n;i++){
            if(key[i-1]+key[i]>key[i]){
            ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发