댓글에 너무 오래 사용했습니다. 당신이 그것을 해결할 수 없다면 나중에 해결책을 게시 할 것이지만, 나는 그것을 (코드의 15 줄 이하에서) 어떻게 했는가? 나는 처음에 두 번째 배열을 만들었다. (더 큰 [n + 2]
0 0 0 0 0 0 0 0
0 0 1 0 0 0 1 0
0 1 0 1 1 1 0 0
0 1 0 1 2 2 1 0
0 0 1 2 2 2 1 0
0 0 0 1 2 2 1 0
0 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 1 0 0 0 1 0
0 1 0 1 1 1 0 0
0 1 0 1 2 2 1 0
0 0 1 2 3 2 1 0
0 0 0 1 2 2 1 0
0 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0
비제 번호 X가 I와 함께 관련 크기를 표현하고있어 ("I 크기 X의 마름모의 중심 해요"의미 : N + 2) 및/2 패스 N 않았다 대각선의 길이 [두 경우 모두 동등한 마름모입니다]. {위쪽, 오른쪽, 아래쪽, 왼쪽}이 모두 크기 k의 마름모의 중심인지 확인하여 크기가 (k + 1) 인 마름모 중심이 있는지 확인할 수 있습니다.
더 큰 어레이를 처음 만드는 이점은 논리를 정말 단순화한다는 것입니다.하지만 원래의 어레이를 수정하거나 동일한 크기의 두 번째 배열을 사용하여 논리를 단순화 할 수 있습니다. 입력 (다시 한번 말하면, 입력 주위에 모두 0의 안전한 "펜스"를 넣는 것이 더 쉽습니다).
어레이를 울타리로 "둘러싸"지 않으면 if/else 검사가 추가로 많이 발생합니다. 오류가 발생하여 코드가 커지고 코드가 더 추악해질 수 있습니다.
우리에게는 아마도 많은 아이디어가 있지만 숙제가 아닙니다. 너는 무엇을 성취 했는가? –
정의에 따르면, 마름모는 같은 길이의 4면을 가져야하지만 내부 각이 90 도일 필요는 없습니다. 어떤 종류의 가장 큰 마름모를 찾아야합니까, 아니면 가장 큰 45도 회전 사각형을 찾을 수 있습니까? (샘플 결과로 인해 45도를 의미한다고 가정합니다. 90도 회전 된 사각형은 원본과 동일합니다.) – Pops
@Lord Torgamus : 분명히 "2D 배열"을 나타내는 데 사용 된 표현에서 최대 45 점 -degrees rotate square ... (선 그리기/교차점/정밀도 문제로 인해 문제를 해결하는 행운을 빕니다.) – SyntaxT3rr0r