Php内存超出限制

时间:2015-06-13 13:57:58

标签: php

最近我参加了一个编程竞赛,关于这一个问题。当我尝试提交时,在某个测试用例中,我的内存超出限制。比赛已经结束,我没有测试用例和问题。问题是这样的。

您曾被要求帮助公司减少求职面试的候选人人数。如果任何候选人拥有CGPA,经验和测试分数,以免任何其他候选人,他将被拒绝。找出被拒绝的候选人的数量


输入将来自命令行。像这样的东西,
第一行将有一个整数。候选人数 n 第二行将有 n 整数分隔的空格代表每个候选人的CGPA 第三行将有 n 整数分隔的空格表示每个候选人的经验 第四行将有 n 整数分隔的空格代表每个候选人的测试核心
示例输入
4
1 3 5 6
6 2 6 1
1 2 3 4

示例输出
1

因为只有候选人2的所有3个值都少于候选人3的其他候选人。候选人1的经验数等于候选人3,这是考虑好的

这是我的代码,只想知道是否有人知道如何减少内存使用量。

<?php
$input = fopen('php://stdin', 'r');
$numberOfPeople = intval(fgets($input));
$numberOfCGA = explode(' ', trim(preg_replace('/\s+/', ' ', fgets($input))));
foreach( $numberOfCGA as $key => $num )
{
    $numberOfCGA[$key] = intval($num);
}
$numberOfExp = explode(' ', trim(preg_replace('/\s+/', ' ',    fgets($input))));
foreach( $numberOfExp as $key => $num )
{
    $numberOfExp[$key] = intval($num);
}
$numberOfScore = explode(' ', trim(preg_replace('/\s+/', ' ', fgets($input))));
foreach( $numberOfScore as $key => $num )
{
    $numberOfScore[$key] = intval($num);
}
$numOfReject = 0;

for( $i = 0; $i < $numberOfPeople; $i++ )
{
    for( $j = 0; $j < $numberOfPeople; $j++ )
    {
        if( $i == $j ) continue;
        if( ( intval($numberOfCGA[$i]) < intval($numberOfCGA[$j]) )
            && ( intval($numberOfExp[$i]) < intval($numberOfExp[$j]) )
            && ( intval($numberOfScore[$i]) < intval($numberOfScore[$j]) ) )
        {
            $numOfReject++;
            break;
        }
    }
}
echo $numOfReject . PHP_EOL;

1 个答案:

答案 0 :(得分:1)

如果你增加你的PHP内存怎么办? 有关详细信息,请参阅http://tutorials.hostucan.net/how-to-increase-php-memory-limit/

同时检查一下:PHP preg_replace() - Memory Issues. Alternative?