947. 같은 행이나 열에서 가장 많이 제거된 돌
난이도:중
주제: 해시 테이블, 깊이 우선 검색, Union Find, 그래프
2D 평면에서는 정수 좌표점에 n개의 돌을 배치합니다. 각 좌표점에는 최대 1개의 돌이 있을 수 있습니다.
스톤은 제거되지 않은 다른 스톤과 같은 행이나 같은 열을 공유하는 경우 제거될 수 있습니다.
stone[i] = [xi, yi]가 i번째 돌의 위치를 나타내는 n 길이의 돌 배열이 있는 경우 제거할 수 있는 가능한 가장 큰 돌 수를 반환합니다. .
예 1:
예 2:
예 3:
제약조건:
해결책:
DFS(깊이 우선 검색) 접근 방식을 사용하여 솔루션을 구현할 수 있습니다. 행이나 열로 연결된 돌을 동일한 연결된 구성 요소의 일부로 간주하는 것이 아이디어입니다. 연결된 부품을 모두 찾았을 때, 제거할 수 있는 최대 돌 개수는 총 돌 개수에서 연결된 부품 개수를 뺀 값입니다.
이 솔루션을 PHP로 구현해 보겠습니다: 947. 같은 행이나 열에서 가장 많은 돌이 제거됨
<?php function removeStones($stones) { ... ... ... /** * go to ./solution.php */ } function dfs($stoneIndex, &$stones, &$visited) { ... ... ... /** * go to ./solution.php */ } // Example usage: $stones1 = array( array(0, 0), array(0, 1), array(1, 0), array(1, 2), array(2, 1), array(2, 2) ); echo removeStones($stones1); // Output: 5 $stones2 = array( array(0, 0), array(0, 2), array(1, 1), array(2, 0), array(2, 2) ); echo removeStones($stones2); // Output: 3 $stones3 = array( array(0, 0) ); echo removeStones($stones3); // Output: 0 ?>
DFS 기능:
주요 기능:
실행 예:
이 솔루션은 주어진 제약 내에서 효율적으로 작동해야 합니다.
연락처 링크
이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!
이런 유용한 콘텐츠를 더 원하시면 저를 팔로우해주세요.
위 내용은 . 동일한 행이나 열에서 제거된 대부분의 돌의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!