博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微软2014实习生及秋令营技术类职位在线测试-题目3 : Reduce inversion count
阅读量:6268 次
发布时间:2019-06-22

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

这道题有几个关键的地方: 1、计算一个数组的逆序对的个数。   我采用遍历的方式,用两重循环,时间复杂度O(N^2),应该没有效率更高的方法【代码27-32】; 2、找到一对(d[j],d[k],设j
2 int main(void) 3 { 4 char data[120]; 5 int len = 0; 6 int d[50]; 7 int j =0,k=0,l =0,i=0; 8 int cnt =0,max =0,x=0,y=0,n=0; 9 while(gets(data))10 {11 len = 0;12 i =0;13 j = 0;14 cnt =0,max =0;;15 n=0;16 //operate input17 while(data[i]!='\0')18 {19 if(data[i]!=',')20 {21 d[j++] = data[i]-'0';22 len++;23 }24 i++;25 }26 //count orignal reversion pairs27 for(j=0;j
d[k])31 cnt++;32 }33 //FIND the right pair which can largest reduce the count34 for(j=0;j
d[j])40 continue;41 for(l=j;l
d[j])44 n--;45 if(d[l]
d[k])48 n++;49 if(d[l]
max)53 max = n;54 }55 }56 57 printf("%d\n",cnt-max);58 59 }60 return 0;61 } 最后声明下,作为菜鸟一个,没有在给定时间里,完整的把代码中的几个条件考虑进去,因此这里的程序不知道是否可以AC,但是我跑些case的结果是对的。

 

转载于:https://www.cnblogs.com/echoht/p/3661425.html

你可能感兴趣的文章
PS批处理的使用
查看>>
七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 【转】
查看>>
Quartz作业调度框架
查看>>
腾讯云下安装 nodejs + 实现 Nginx 反向代理
查看>>
js-权威指南学习笔记13
查看>>
《超级时间整理术》晨读笔记
查看>>
Spring Boot 2.0(二):Spring Boot 2.0尝鲜-动态 Banner
查看>>
Delphi IdTCPClient IdTCPServer 点对点传送文件
查看>>
Delphi中使用ActiveX的一些心得
查看>>
QT5.8.0+MSVC2015安装以及环境配置(不需要安装VS2015)
查看>>
(原創) C/C++的function prototype和header file (C/C++) (C)
查看>>
深入理解JavaScript系列(29):设计模式之装饰者模式
查看>>
程序员的罪与罚
查看>>
SQL*LOADER错误总结
查看>>
SQL日志收缩
查看>>
【转】MySQL Query Cache 小结
查看>>
SVN分支和合并的简单例子
查看>>
PHP实现的封装验证码类
查看>>
Augular初探
查看>>
PHPStorm下XDebug配置
查看>>