행렬에서 연결된 비어 있지 않은 셀 수를 업데이트하는 쿼리
행렬은 행과 열로 구성된 셀의 모음으로 생각할 수 있습니다. 각 셀에는 비어 있거나 비어 있지 않은 값이 포함될 수 있습니다. 컴퓨터 프로그래밍에서 행렬은 데이터를 2차원 그리드로 표현하는 데 자주 사용됩니다.
이 기사에서는 행렬에 대한 가능한 업데이트를 고려하여 행렬에서 비어 있지 않은 연결된 셀 수를 효율적으로 계산하는 방법에 대해 설명합니다. 이 문제를 해결하는 다양한 방법을 살펴보고 구현을 시연하기 위한 실제 코드 예제를 제공합니다.
문법
행렬에서 연결된 비어 있지 않은 셀 수를 쿼리하고 C/C++를 사용하여 업데이트하는 기본 구문은 다음과 같이 정의할 수 있습니다. -
으아아아행렬이 입력 "matrix"인 경우 "rows" 및 "cols"는 각각 행렬의 행과 열 수를 나타냅니다. "queryCount" 함수는 행렬에서 연결된 비어 있지 않은 셀의 수를 나타내는 정수 값을 반환합니다.
알고리즘
이 문제를 해결하기 위해 다음 알고리즘을 따를 수 있습니다. -
1단계 - 변수 "count"를 0으로 초기화하면 연결된 비어 있지 않은 셀의 개수가 저장됩니다.
2단계 - 행렬의 각 셀을 반복합니다.
3단계 - 각 셀에 대해 비어 있지 않은지(즉, null이 아닌 값이 포함되어 있는지) 확인하세요.
4단계 - 셀이 비어 있지 않으면 개수를 1씩 늘립니다.
5단계 - 셀에 비어 있지 않은 인접 셀이 있는지 확인하세요.
6단계 - 인접한 셀이 비어 있지 않으면 "count"를 1만큼 늘립니다.
7단계 - 인접한 모든 셀에 대해 5~6단계를 반복합니다.
8단계 - 8: 행렬의 모든 셀을 반복한 후 "count"를 최종 결과로 반환합니다.
방법
방법 1 - 이 문제를 해결하는 일반적인 방법은 깊이 우선 검색(DFS) 알고리즘을 사용하는 것입니다
방법 2 - 업데이트된 행렬에서 연결이 있는 비어 있지 않은 셀의 개수를 찾기 위한 쿼리를 구현하는 또 다른 방법은 BFS(Breadth-First Search) 알고리즘을 사용하는 것입니다.
방법 1
이 접근 방식에서 DFS 알고리즘은 행렬을 재귀적으로 탐색하고 방문한 셀을 추적하여 이중 계산을 방지합니다.
예 1
이 방법은 2차원 행렬에 대해 깊이 우선 검색을 수행합니다. 행렬의 차원, 셀 값, 쿼리 수는 무작위로 결정됩니다. countConnectedCells 서브루틴은 DFS를 수행하고 지정된 행과 열에 있는 셀부터 시작하여 연결된 null이 아닌 셀의 개수를 반환합니다. updateCell 함수는 행렬의 셀 값을 업데이트합니다. 주요 함수는 현재 시간을 사용하여 임의의 시드를 시작한 다음 임의의 행렬 크기와 요소를 생성한 다음 임의의 수의 쿼리를 생성합니다. 각 쿼리에 대해 코드는 개수 쿼리(1) 또는 업데이트 쿼리(2)를 무작위로 선택하고 적절한 작업을 수행합니다. 쿼리 유형이 1이면 countConnectedCells 함수가 호출되어 연결된 비어 있지 않은 셀의 수를 확인하고 결과를 인쇄합니다. 쿼리 유형이 2인 경우 updateCell 함수를 호출하여 지정된 셀의 값을 조정합니다.
으아아아출력
으아아아방법 2
이 접근 방식에서 BFS(Breadth First Search)는 행렬에서 연결되어 있고 비어 있지 않은 셀의 수를 찾는 데 사용할 수 있는 또 다른 그래프 순회 알고리즘입니다. BFS에서는 주어진 셀에서 시작하여 너비 우선 방식(즉, 레이어별로)으로 모든 인접 셀을 탐색합니다. 우리는 대기열을 사용하여 액세스 중인 셀을 추적하고 액세스된 셀을 표시하여 여러 카운트를 방지합니다.
예 2
이 코드는 2차원 행렬에서 너비우선탐색 알고리즘을 수행하는 소프트웨어를 구성합니다. 행렬의 차원, 셀 값, 쿼리 개수는 임의로 생성됩니다. 코드에는 두 개의 서브루틴이 포함되어 있습니다. 하나는 BFS를 수행하고 다른 하나는 매트릭스 내의 셀을 조정합니다.
BFS 작업은 무작위로 선택된 셀부터 시작하여 인접한 셀을 검사하여 서로 연결되어 있고 비어 있는지 확인합니다. 그렇다면 대기열에 추가되어 비슷한 방식으로 처리됩니다. 행렬 내의 셀 업데이트에는 해당 값만 변경됩니다. 행렬과 쿼리 번호를 생성한 후 코드는 BFS 쿼리 또는 업데이트 쿼리를 무작위로 선택하여 적절한 작업을 수행합니다. BFS 쿼리의 결과는 선택한 셀부터 시작하여 상호 연결된 비어 있는 셀의 개수입니다.
코드
으아아아출력
으아아아결론
이 기사에서는 행렬에서 연결된 비어 있지 않은 셀의 수를 찾고 C/C++를 사용하여 업데이트하는 두 가지 방법에 대해 논의했습니다. 깊이 우선 탐색(DFS) 알고리즘 및 합집합 검색(소분할 집합의 합집합) 특정 사용 사례에 가장 적합한 방법을 선택하기 전에 각 방법의 시간 복잡도와 공간 복잡도를 분석하는 것이 중요합니다.
위 내용은 행렬에서 연결된 비어 있지 않은 셀 수를 업데이트하는 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











블리자드 Battle.net 업데이트가 45%에서 계속 멈춥니다. 어떻게 해결하나요? 최근 많은 사람들이 소프트웨어를 업데이트할 때 진행률이 45%에서 멈췄습니다. 여러 번 다시 시작해도 계속 멈춥니다. 그렇다면 이 상황을 해결하려면 어떻게 해야 할까요? 이 소프트웨어 튜토리얼은 더 많은 사람들에게 도움이 되기를 바라며 작업 단계를 공유할 것입니다. 블리자드 Battle.net 업데이트가 45%에서 계속 멈춥니다. 해결 방법 1. 클라이언트 1. 먼저 클라이언트가 공식 웹사이트에서 다운로드한 공식 버전인지 확인해야 합니다. 2. 그렇지 않은 경우 사용자는 아시아 서버 웹사이트에 들어가 다운로드할 수 있습니다. 3. 입력 후 오른쪽 상단의 다운로드를 클릭하세요. 참고: 설치할 때 중국어 간체를 선택하지 마십시오.

12306 티켓 예매 앱의 최신 버전을 다운로드하세요. 모두가 매우 만족하는 여행 티켓 구매 소프트웨어입니다. 소프트웨어에서 제공되는 다양한 티켓 소스가 있어 매우 편리합니다. - 실명인증으로 온라인 구매가 가능합니다. 모든 사용자가 쉽게 여행티켓과 항공권을 구매하고 다양한 할인 혜택을 누릴 수 있습니다. 또한 사전에 예약하고 티켓을 얻을 수도 있습니다. 호텔을 예약하거나 차량으로 픽업 및 하차할 수도 있습니다. 한 번의 클릭으로 원하는 곳으로 이동하고 티켓을 구매할 수 있어 여행이 더욱 간편해지고 편리해집니다. 모든 사람의 여행 경험이 더욱 편안해졌습니다. 이제 편집자가 온라인으로 자세히 설명합니다. 12306명의 사용자에게 과거 티켓 구매 기록을 볼 수 있는 방법을 제공합니다. 1. 철도 12306을 열고 오른쪽 하단의 My를 클릭한 후 My Order를 클릭합니다. 2. 주문 페이지에서 Paid를 클릭합니다. 3. 유료페이지에서

Angular.js는 동적 애플리케이션을 만들기 위해 자유롭게 액세스할 수 있는 JavaScript 플랫폼입니다. HTML 구문을 템플릿 언어로 확장하여 애플리케이션의 다양한 측면을 빠르고 명확하게 표현할 수 있습니다. Angular.js는 코드를 작성, 업데이트 및 테스트하는 데 도움이 되는 다양한 도구를 제공합니다. 또한 라우팅 및 양식 관리와 같은 많은 기능을 제공합니다. 이 가이드에서는 Ubuntu24에 Angular를 설치하는 방법에 대해 설명합니다. 먼저 Node.js를 설치해야 합니다. Node.js는 서버 측에서 JavaScript 코드를 실행할 수 있게 해주는 ChromeV8 엔진 기반의 JavaScript 실행 환경입니다. Ub에 있으려면

Xuexin.com에서 내 학업 자격을 어떻게 확인하나요? Xuexin.com에서 학업 자격을 확인할 수 있습니다. 많은 사용자가 Xuexin.com에서 학업 자격을 확인하는 방법을 모릅니다. 다음으로 편집자는 Xuexin.com에서 학업 자격을 확인하는 방법에 대한 그래픽 튜토리얼을 제공합니다. 유저들이 와서 구경해 보세요! Xuexin.com 사용 튜토리얼: Xuexin.com에서 학업 자격을 확인하는 방법 1. Xuexin.com 입구: https://www.chsi.com.cn/ 2. 웹사이트 쿼리: 1단계: Xuexin.com 주소를 클릭합니다. 위의 홈페이지에 들어가려면 [교육 쿼리]를 클릭합니다. 2단계: 최신 웹페이지에서 아래 그림의 화살표와 같이 [쿼리]를 클릭합니다. 3단계: 새 페이지에서 [학점 파일에 로그인]을 클릭합니다. 4단계: 로그인 페이지에서 정보를 입력하고 [로그인]을 클릭합니다.

Edge 브라우저를 사용하여 웹 페이지에 액세스할 때 연결이 전용 연결이 아니어서 웹 탐색이 실패한다는 메시지가 표시된 적이 있습니까? 어떻게 진행되고 있나요? 많은 친구들이 이 문제를 해결하는 방법을 모릅니다. 다음 세 가지 해결 방법을 살펴볼 수 있습니다. 방법 1(간단하고 투박함): 엣지 브라우저에서 설정에 들어가 보안 기능을 끄고, 웹사이트 권한에서 위치 접근권한을 차단하는 방법으로 웹사이트 접속이 불가능한 문제를 해결해 볼 수 있습니다. 이 접근법의 효과와 기간은 다양할 수 있으며 구체적인 효과를 확인할 수 없다는 점에 유의하는 것이 중요합니다. 브라우저를 다시 시작한 후 웹사이트를 방문하여 문제가 해결되었는지 확인할 수 있습니다. 방법 2: 키보드를 영어 입력으로 조정

친구의 컴퓨터에 이러한 오류가 있습니다. "이 PC"와 C 드라이브 파일을 열면 "Explorer.EXE Windows가 지정된 장치, 경로 또는 파일에 액세스할 수 없습니다. 프로젝트에 액세스할 수 있는 적절한 권한이 없을 수 있습니다. " 폴더, 파일, 이 컴퓨터, 휴지통 등을 포함하여 더블클릭하면 이런 창이 뜨는데, 마우스 오른쪽 버튼을 클릭해서 여는 것이 정상입니다. 이는 시스템 업데이트로 인해 발생합니다. 이러한 상황이 발생하면 아래 편집기에서 해결 방법을 알려드립니다. 1. 레지스트리 편집기 Win+R을 열고 regedit를 입력하거나 시작 메뉴를 마우스 오른쪽 버튼으로 클릭하여 실행하고 regedit를 입력합니다. 2. "Computer\HKEY_CLASSES_ROOT\PackagedCom\ClassInd" 레지스트리를 찾습니다.

1. 이어폰을 이어폰 상자에 넣고 뚜껑을 열어둔 상태로 상자의 버튼을 길게 눌러 이어폰 페어링 상태로 들어갑니다. 2. 음악 감상 기능을 켜고 블루투스 헤드폰을 선택하거나, 시계 설정 기능에서 블루투스 헤드폰을 선택하세요. 3. 성공적으로 페어링하려면 시계에서 헤드셋을 선택하세요.

MSI 그래픽 카드는 시장의 주류 그래픽 카드 브랜드입니다. 우리는 그래픽 카드가 성능을 달성하고 호환성을 보장하려면 드라이버를 설치해야 한다는 것을 알고 있습니다. 그렇다면 MSI 그래픽 카드 드라이버를 최신 버전으로 업데이트하는 방법은 무엇입니까? 일반적으로 MSI 그래픽 카드 드라이버는 공식 웹사이트에서 다운로드하여 설치할 수 있습니다. 자세한 내용은 아래에서 알아보세요. 그래픽 카드 드라이버 업데이트 방법: 1. 먼저 "MSI 공식 웹사이트"에 들어갑니다. 2. 입력 후 오른쪽 상단의 "검색" 버튼을 클릭하여 그래픽 카드 모델을 입력하세요. 3. 그런 다음 해당 그래픽 카드를 찾아 세부 정보 페이지를 클릭합니다. 4. 그런 다음 위의 "기술 지원" 옵션을 입력하세요. 5.마지막으로 "드라이버 및 다운로드"로 이동합니다.
