zoukankan      html  css  js  c++  java
  • 算法与数据结构实验题 4.8 干净的序列

    ★实验任务
    有一个长度为 n 的序列,第 i 个的数为 a[i]。我们定义如果它的一个连续的子串为“没有进行过干净的交易”,那么这个子串的最大值与最小值之差在[m,k]中。
    现在,你的任务是找到一条最长的“没有进行过干净的交易”的子串。
    ★数据输入
    第一行输入三个正整数 n m k (0<n<=10000),m(0 =< m =< k =< n)。
    接下去一行有 n 个正整数,第 i 个数表示 a[i]的值。
    ★数据输出
    输出一个数,表示这个子串的长度。

    //输入示例1
    5 0 0
    1 1 1 1 1
    //输出示例1
    5
    
    //输入示例2
    6 0 3
    3 1 2 3 4 5
    //输出示例2
    5
    

    通过二重循环判断,其中注意:当max-min<m时继续内重循环,因为之后可能会有更小或者更大的数始得max-min>=m。

    #include<stdio.h>
    int main()
    {
    	int n,m,k,i,j,a[10005],max,min,count,ans=0;
    	scanf("%d%d%d",&n,&m,&k);
    	for(i=0;i<n;i++)
    	{
    		scanf("%d",&a[i]);
    	}
    	for(i=0;i<n-1;i++)
    	{
    		max=a[i];min=a[i];
    		for(j=i+1;j<n;j++)
    		{
    			if(a[j]>max)max=a[j];
    			if(a[j]<min)min=a[j];
    			if(max-min>=m&&max-min<=k)count=j-i+1;
    			else if(max-min<m)continue;
    			else break;
    		}
    		if(count>ans)ans=count;
                    count=0;
    	}
    	printf("%d",ans);
    	return 0;
     } 
    
  • 相关阅读:
    swing_AbstractTableModel 创建表格
    swing_tableModel 创建表格
    LDA主题模型
    jieba分词
    LightGBM介绍及参数调优
    机器学习中常见的损失函数
    const和define区别 static
    C++四种类型转换
    行为模式->策略模式
    结构模式->享元模式
  • 原文地址:https://www.cnblogs.com/ponynice/p/13770256.html
Copyright © 2011-2022 走看看