所用算法较难想出来
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