思维题

  1. 1696. 困牛排序
    1. 题目大意:
    2. 思路:
    3. 代码:

所用算法较难想出来

1696. 困牛排序

题目大意:

一个无序数组,每次只能把第一个数字插入到后面某个位置,问最少几次能把数组变得有序

思路:

要把整个数组变成升序,就要把最后一个降序也变成升序,所以从后往前找到第一个降序

代码:

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 110;

int n;
int q[N];

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i ++ ) cin >> q[i];

    for (int i = n - 1; i; i -- )
        if (q[i] > q[i + 1])
        {
            cout << i << endl;
            return 0;
        }

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

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1149440709@qq.com

×

喜欢就点赞,疼爱就打赏