zoukankan      html  css  js  c++  java
  • 51 Nod 1272 简单思维题

    1272 最大距离 

    题目来源: Codility

    基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题

     收藏

     关注

    给出一个长度为N的整数数组A,对于每一个数组元素,如果他后面存在大于等于该元素的数,则这两个数可以组成一对。每个元素和自己也可以组成一对。例如:{5, 3, 6, 3, 4, 2},可以组成11对,如下(数字为下标):

    (0,0), (0, 2), (1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (3, 3), (3, 4), (4, 4), (5, 5)。其中(1, 4)是距离最大的一对,距离为3。

    Input

    第1行:1个数N,表示数组的长度(2 <= N <= 50000)。
    第2 - N + 1行:每行1个数,对应数组元素Ai(1 <= Ai <= 10^9)。

    Output

    输出最大距离。

    Input示例

    6
    5
    3
    6
    3
    4
    2

    Output示例

    3
     #include <iostream>
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    struct node
    {
        int v;
        int id;
        bool operator<(node &n2)
        {
            if(v!=n2.v)return v<n2.v;
            else return id<n2.id;
        }
    } a[50005];
    int main()
    {
        #ifndef ONLINE_JUDGE
            freopen("in.txt","r",stdin);
        #endif // ONLINE_JUDGE
        int n;
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a[i].v);
            a[i].id=i;
        }
        sort(a,a+n);
        int ans=0;int min_id=a[0].id;
        for(int i=1;i<n;i++)
        {
            if(a[i].id>min_id)ans=max(ans,a[i].id-min_id);
            min_id=min(min_id,a[i].id);
        }
        printf("%d
    ",ans);
        return 0;
    }
    
    
    
    
    
  • 相关阅读:
    git连接远程分支
    如何找N个数中第i小的数
    DeconvNet
    深度学习中的Internal Convariate Shift (ICS)
    BA算法解决p-中位问题
    蚁群算法
    蝙蝠算法初探
    轨迹压缩之Douglas-Peucker算法之C++实现
    遗传算法---编程小试
    NYOJ 1000
  • 原文地址:https://www.cnblogs.com/linruier/p/9747091.html
Copyright © 2011-2022 走看看