竞赛讨论区 > C题双指针做法 75% TLE 求助
头像
虽然她送了我玫瑰花
发布于 2022-04-08 21:09
+ 关注

C题双指针做法 75% TLE 求助

#include<bits/stdc++.h>
using namespace std;
#define PI 3.141****53589
#define int long long
const int N=2e5+10,mod=1e9+7;
int a[N];

signed main(){
    int n;cin>>n;
    
    for(int i=1;i<=n;i++){
//         cin>>a[i];
        scanf("%d",&a[i]);
    }
    int x;cin>>x;
//     cout<<x<<endl;
    int cnt=1;
    
    if(n==1){
        cout<<1;
        return 0;
    }
    
    else
    {
        for(int i=2,j=n+1;i<=j;i++){
            int t=j;
            cnt++;
            while(a[t]<=x&&t>i) t--;//找到当前x左边第一个比他大的数字

            if(a[t]>x){
                a[t]=x;
                j=t;

            }

        
        }
        cout<<cnt<<endl;   
    }
    return 0;
}

全部评论

(2) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐