zoukankan      html  css  js  c++  java
  • 一组区间中交集最多的一个

    #include <iostream>
    #include <stdlib.h>
    #include <time.h>
    using namespace std;
    #define NUM 30 //区间个数

    typedef struct
    {
    int min; //区间中最小值
    int max; //区间中最大值
    int diff; //区间的大小
    }extent;

    int Max(int a,int b)
    {
    if (a>=b)
    {
    return a;
    }
    else
    {
    return b;
    }

    }

    int Min(int a,int b)
    {
    if (a<=b)
    {
    return a;
    }
    else
    {
    return b;
    }
    }


    int main()
    {
    extent a[NUM]; //这么多组区间
    extent tep[(NUM*(NUM-1))/2]; //需要比较的区间,共num*(num-1)/2个
    extent result;
    int i,j;
    int m=-1;
    srand(time(0));
    for (i=0;i<NUM;i++) //初始化区间
    {
    a[i].min=rand()%10;
    a[i].max=rand()%10+10;
    cout<<a[i].min<<""<<a[i].max<<endl;
    }

    for (i=0;i<NUM-1;i++) //m个区间需要比较1+2+3+...+m-1这么多个
    {
    for (j=i+1;j<NUM;j++)
    {
    m++;
    tep[m].min=Max(a[i].min,a[j].min);
    tep[m].max=Min(a[i].max,a[j].max);
    tep[m].diff=tep[m].max-tep[m].min;
    }
    }

    int Mdiff=-1;
    for (i=0;i<(NUM*(NUM-1))/2;i++) //找出比较后最大的区间
    {
    if (tep[i].diff>Mdiff)
    {
    Mdiff=tep[i].diff;
    result.max=tep[i].max;
    result.min=tep[i].min;
    result.diff=tep[i].diff;
    }
    }

    cout<<endl;
    cout<<result.min<<""<<result.max<<endl;
    cout<<result.diff<<endl;

    system("pause");
    return 0;
    }
  • 相关阅读:
    FastDFS概述及原理
    SpringBoot中使用Redis缓存注解
    SpringBoot中使用Redis
    Jedis
    Redis客户端
    Redis的集群配置
    Redis的复制
    英语笔记-5
    内网转发Ubuntu
    数学笔记-4
  • 原文地址:https://www.cnblogs.com/tiandsp/p/2337146.html
Copyright © 2011-2022 走看看