您的位置:首页 > 其它

51nod 1272 最大距离 O(nlog(n)) , 快排 , 最大连续子串

2017-10-20 21:22 239 查看
题目:



解法:排序,把值小的和索引小的放在前面,记录一下之前索引最小的就可以了。

  没什么可以讲的,上代码吧:

#include <bits\stdc++.h>
using namespace std;
typedef long long ll;
struct node{
int value;
int index;
}a[50010];

bool cmp(node x,node y){
if(x.value != y.value) return x.value < y.value;
return x.index < y.index;
}

int main() {
int n;
cin >> n;
for(int i = 0;i < n; i++){
cin >> a[i].value;a[i].index = i;
}

sort(a,a+n,cmp);

int num = a[0].index;
int ans = 0;

for(int i = 1;i < n; i++){
ans = max(ans,a[i].index-num);
if(a[i].index < num) num = a[i].index;
}

cout << ans << endl;
return 0;
}
//  writen by zhangjiuding
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: