1045 快速排序 (25分)

1045 快速排序 (25分)

#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
    int INF=0x7fffffff;
    int n,ans=0;
    scanf("%d",&n);
    int a[n],b[n];
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    int leftmax[n],rightmin[n];
    leftmax[0]=0;
    rightmin[n-1]=INF;
    for(int i=1;i<n;i++){
         leftmax[i]=max(leftmax[i-1],a[i-1]);
    }
    for(int i=n-2;i>=0;i--){
         rightmin[i]=min(rightmin[i+1],a[i+1]);
    }
    for(int i=0;i<n;i++){
        if(a[i]>leftmax[i]&&a[i]<rightmin[i]){
            b[ans]=a[i];
            ans++;
        }
    }
    sort(b,b+ans);
    printf("%d\n",ans);
    for(int i=0;i<ans;i++){
        if(i==0)  printf("%d",b[i]);
        else printf(" %d",b[i]);
    }
    printf("\n");
    return 0;
}

第一次,参考算法笔记完成,25min

1045 快速排序 (25分)1045 快速排序 (25分) 复旦复试不拿270不改名 发布了79 篇原创文章 · 获赞 2 · 访问量 1331 私信 关注
上一篇:PAT高效技巧算法---1045 快速排序 (25分)


下一篇:2021.12.20\21\22----安装调试scada3.1