最近我参加了一个编程竞赛,关于这一个问题。当我尝试提交时,在某个测试用例中,我的内存超出限制。比赛已经结束,我没有测试用例和问题。问题是这样的。
您曾被要求帮助公司减少求职面试的候选人人数。如果任何候选人拥有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;
答案 0 :(得分:1)
如果你增加你的PHP内存怎么办? 有关详细信息,请参阅http://tutorials.hostucan.net/how-to-increase-php-memory-limit/。