hackerrank 스크립트에서 작업 중이며 작은 입력에서는 작동하지만 배열에 대한 입력이 많으면 출력이 중단되고 에코가 작동하지 않습니다. 오류가없고 아무 것도 없습니다.출력이없는 PHP 명령 행 스크립트
$_fp = STDIN;
fscanf($_fp,"%d",$n);
$max = 0.0;
$max_cnt = 0.0;
$board = [];
for ($i = 0; $i < $n; $i++) {
$points = explode(' ', fgets($_fp));
$a = intval($points[0]);
$b = intval($points[1]);
runBoard2($a, $b);
}
function runBoard2 ($a, $b) {
global $board, $max, $max_cnt;
for($r = 0; $r < $a; $r++) {
for($c = 0; $c < $b; $c++) {
@$board[$r][$c] += 1;
$cellVal = $board[$r][$c];
if ($cellVal > $max) {
$max = $cellVal;
$max_cnt = 1;
} elseif ($cellVal === $max) {
$max_cnt++;
}
}
}
}
echo $max_cnt;
stdin.php :
2
1000000 1000000
1000000 1000000
명령 줄 전화 :
3
2 3
3 7
4 1
는이 라인을 함께 할 수있는 뭔가가 생각 : stdin.php와
cat stdin.php | php rectangulargame.php
작품 @$board[$r][$c] += 1;
마치 내가 tak @ 정의 해제 된 오프셋에 대한 알림을 숨기기 위해 @ 억제를 해제합니다. 메모리 부족 오류가 발생할 때까지 해당 메시지를 표시합니다. 그래서, 어떤 사람이 이것을 피하기 위해 리팩터링을해야하는지에 대한 제안을 가지고 있습니까?
행렬을 작성하지 않고 행과 열을 사용하여 계산할 수있는 더 많은 파고 및 발견 된 힌트가 PHP에서 내 머리를 감싸고 나면 매력적이고 빠르게 작동합니다.
검토 시간과 특히 의견을 보내 주신 모든 분들께 감사드립니다.
'error_reporting (E_ALL); ini_set ('display_errors', '1'); ' – AbraCadaver
@AbraCadaver 두어 단계 동안 동일한 과정을 거친 후 준비된 프롬프터로 새로운 라인을 제공합니다. – Geodin
1,000,000 x 1,000,000 표를 생성 중입니다. 그것은 배열에있는 1,000000000000 개의 항목이며 왜 메모리가 부족한 지 궁금합니다. –