博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
B题 Sort the Array
阅读量:4560 次
发布时间:2019-06-08

本文共 883 字,大约阅读时间需要 2 分钟。

题目大意:

判断能否通过一次倒置,使序列变为一个递增序列

如果可以,输出倒置那一段的起始点和终点的位置;

 

题目链接:

 

我自己的做法是用一个数组b保存原数组中小于后一个点的点的下标。

如果b数组中后一个数比前一个数大了超过一,说明有2段递减序列,不成立。

如果均后一个比前一个大1,那么在判断倒置前起始的位置和它倒置后的下一个位置是否递增进行判断,在进行倒置前结束的位置和它倒置后的上一个位置是否递增进行判断

均成立,输出两个位置

 

1 #include
2 #include
3 using namespace std; 4 #define N 100100 5 int a[N],b[N]; 6 int cnt; 7 int main() 8 { 9 int n,flag;10 11 while(scanf("%d",&n)!=EOF){12 flag=1;cnt=0;13 14 for(int i=0;i
>a[i];16 for(int i=0;i<=n-2;i++){17 if(a[i]>a[i+1]) b[cnt++]=i;18 }19 if(cnt>0)20 {21 b[cnt]=b[cnt-1]+1;22 cnt++;23 }24 25 for(int i=0;i
a[b[cnt-1]+1])flag=0;}38 if(b[0]>0){
if(a[b[cnt-1]]
View Code

 

转载于:https://www.cnblogs.com/CSU3901130321/p/3871531.html

你可能感兴趣的文章
运行web项目端口占用问题
查看>>
Java Spring-IOC和DI
查看>>
【NOIP1999】【Luogu1015】回文数(高精度,模拟)
查看>>
Linux上安装Python3.5
查看>>
crt安装
查看>>
git切换分支报错:error: pathspec 'origin/XXX' did not match any file(s) known to git
查看>>
c++中static的用法详解
查看>>
转 我修改的注册表,但是程序运行起来,还是记着以前的
查看>>
图片轮播功能
查看>>
第六周小组作业:软件测试和评估
查看>>
linux Cacti监控服务器搭建
查看>>
debian(kali Linux) 安装net Core
查看>>
centos 7防火墙设置
查看>>
自定义进度条(圆形、横向进度条)
查看>>
spark-streaming-kafka采坑
查看>>
9.Mongodb与python交互
查看>>
18-[JavaScript]-函数,Object对象,定时器,正则表达式
查看>>
读取短信回执
查看>>
EF 数据初始化
查看>>
PreparedStatement与Statement
查看>>