zoukankan      html  css  js  c++  java
  • PAT-B-1030

    1030 完美数列(25 分)

    给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 Mmp,则称这个数列是完美数列。

    现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。

    输入格式:

    输入第一行给出两个正整数 N 和 p,其中 N(105​​)是输入的正整数的个数,p(109​​)是给定的参数。第二行给出 N 个正整数,每个数不超过 109​​。

    输出格式:

    在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。

    输入样例:

    10 8
    2 3 20 4 5 1 6 7 8 9
    

    输出样例:

    8
    使用迭代法会快得多!递归会Timeout!
    int Itera(int* A, int N, int P){
        int i, j, maxLength=0;
        
        for( i=0, j=0; j<N; i++){/*more fast: think of why j < N*/
            for( ; j<N; j++)
                if( A[j] > 1L*A[i]*P )
                  break;
            if( (j-i) > maxLength )
              maxLength = j-i;
        }
        
        return maxLength;
    }
    C 语言实现


  • 相关阅读:
    (二)正反向代理
    (一)服务器架构详解
    斐波那契数列
    旋转数组的最小值
    23 入栈 出栈
    重建二叉树
    22 大端序和小端序
    反转单链表
    替换空格
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/EasonDongH/p/9530864.html
Copyright © 2011-2022 走看看