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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51nod 1272 最大距离 O(nlog(n)) , 快排 , 最大连续子串相关的知识,希望对你有一定的参考价值。

题目:

 

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

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

 

 

#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 

 

以上是关于51nod 1272 最大距离 O(nlog(n)) , 快排 , 最大连续子串的主要内容,如果未能解决你的问题,请参考以下文章

51nod 1272单调栈最大距离

51nod 1272 最大距离

[51NOD1272]最大距离(贪心)

51nod 1272 思维/线段树

51nod 1268最大距离

51nod 1102 面积最大的矩形 && 新疆大学OJ 1387: B.HUAWEI's billboard 单调栈+拼凑段(o(n) 或 o(nlog(n))