hihocoder-1523

来源:互联网 发布:网络直播相关法律出台 编辑:程序博客网 时间:2024/06/05 02:47

题目链接:https://hihocoder.com/problemset/problem/1523

解题思路:
从右开始往左扫,如果当前位置的数等于排好序后的数,那么不进行操作,当在某个位置不相等时,要把这个数往最左边放,然后接着扫下一位,若还是不相等,也放在最左边,但是对这两个数的操作先后顺序是可以互换的,所以可以使这两个数放置后为升序

AC代码:

#include<cstdio>#include<algorithm>using namespace std;const int MAXN = 1000000 + 5;int gt[MAXN];int main(){    int n;    scanf("%d", &n);    for (int i = 0;i < n;i++)        scanf("%d", gt + i);    int ans = n;    for (int i = n - 1;i >= 0;i--)        if (gt[i] == ans)            ans--;    printf("%d\n", ans);    return 0;}
原创粉丝点击