给定一个序列,通过对原始序列进行操作
2024-03-21 15:36:52
发布于:浙江
3阅读
0回复
0点赞
题目大意
给定一个序列,通过对原始序列进行操作,判断最终能否变成一个不下降序列。
题目思路
首先要针对题目的核心操作进行分析,经过分析后发现,操作其实就是将选中序列倒置,因此我们可以想到冒泡排序或者选择排序,当大于等于时,经过操作一定是可以达到目标的,并且如果为1,序列本身成不下降序列也是满足要求的。
时间复杂度分析
该算法的时间复杂度主要就是单层循环,因此是 的复杂度。
代码演示
#include<bits/stdc++.h>
using namespace std;
void solve()
{
int n,k;
cin >> n >> k ;
int last = 0;
int f = true;
for(int i = 1 ; i <= n ; i ++ )
{
int x ; cin >> x;
if(x < last) f = false;
last = x;
}
if(f)
{
cout << "YES" << endl;
return ;
}
k > 1 ? cout << "YES" << endl : cout << "NO" << endl;
}
int main()
{
int t;
cin >> t;
while(t--)
{
solve();
}
return 0;
}
这里空空如也
有帮助,赞一个