목차
소개
알고리즘
출력
결론
백엔드 개발 C++ 최대 M개의 연속 노드와 값 K를 갖는 루트에서 리프까지의 경로 수

최대 M개의 연속 노드와 값 K를 갖는 루트에서 리프까지의 경로 수

Aug 25, 2023 pm 10:45 PM
노드 수 경로 수

소개

이진 트리는 컴퓨터 과학 및 프로그래밍 분야에 폭넓게 응용되는 매혹적인 데이터 구조입니다. 흥미로운 문제는 부모 노드와 그 자식 노드로 구성된 주어진 트리에서 개수를 찾는 것입니다. 이진 트리는 노드로 구성되며 루트 노드가 결정되며 루트 노드는 사용자 요구에 따라 자식 노드를 제공할 수 있습니다. K 값이 결정되고, M 값에 따라 이동 방식이 선택됩니다.

루트에서 리프까지의 경로 수

그래프는 정수 형태의 값을 보유하는 다양한 노드를 사용하여 생성됩니다. 이 기사에서는 주로 시작 노드 또는 루트 노드에서 리프 노드 또는 하위 노드까지 계산하는 데 중점을 둡니다.

그래프는 다양한 노드가 있는 이진 트리에서 생성됩니다.

최대 M개의 연속 노드와 값 K를 갖는 루트에서 리프까지의 경로 수

  • 위 이진 트리에서 루트 노드는 "8"로 선택되었습니다.

  • 그런 다음 두 개의 노드를 만듭니다. 하나는 값이 3이고 다른 하나는 값이 10이며 루트 노드의 왼쪽과 오른쪽 위치를 차지합니다.

  • 값이 2인 노드를 루트로 가져와 각각 왼쪽 및 오른쪽 노드로 값 2와 1을 갖는 또 다른 하위 노드를 만듭니다.

  • 마지막으로 값이 1인 하위 노드는 값이 -4인 하위 노드를 생성합니다.

방법 1: 재귀 함수를 사용하여 K 값을 갖는 최대 M개의 연속 노드로 구성된 루트-리프 경로를 계산하는 C++ 코드

이 문제를 효율적으로 해결하기 위해 트리 순회 알고리즘 및 재귀와 같은 기본 개념을 활용하겠습니다.

알고리즘

1단계: 두 개의 포인터(왼쪽 하위 노드와 오른쪽 하위 노드)와 노드 값을 저장하는 정수 필드를 포함하는 트리 노드를 나타내는 구조를 만듭니다.

2단계: 현재 경로 길이(0으로 초기화됨), 연속 발생 횟수(초기 0으로 설정됨), 목표 값 K 및 연속 발생의 최대 허용 수 M .

3단계: 각 왼쪽 및 오른쪽 하위 트리에서 함수를 재귀적으로 호출하여 증분 경로 길이 및 연속 발생 횟수(해당하는 경우)와 같은 업데이트된 매개변수를 전달합니다.

4단계: 순회 중에 방문한 비어 있지 않은 각 노드에 대해:

a) 값이 K와 같으면 두 변수에 1을 더합니다.

b) 값이 K와 일치하지 않거나 지금까지 경로에서 발견된 M의 연속 발생 횟수를 초과하는 경우 변수를 0으로 재설정합니다.

5단계: 트리를 탐색하는 동안 왼쪽과 오른쪽 모두에서 하위 노드의 값이 0인 경우 두 가지 방법으로 처리할 수 있습니다.

a) 변수가 M을 초과하지 않는지 확인하세요.

b) 그렇다면 조건을 만족하는 총 경로 수를 1만큼 늘립니다.

으아악

출력

으아악

결론

이 기사에서는 상단(즉, 리프)에서 끝 또는 루트까지의 경로 수를 계산하는 문제를 탐구합니다. 이러한 문제는 C++의 트리 순회 알고리즘과 재귀 기술을 사용하여 효율적으로 해결할 수 있습니다. 이진 트리를 순회하는 과정은 어려워 보일 수 있지만 예제를 사용하면 쉬워집니다.

위 내용은 최대 M개의 연속 노드와 값 K를 갖는 루트에서 리프까지의 경로 수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

MD5 해시 값이란 무엇입니까? MD5 해시 값이란 무엇입니까? Feb 18, 2024 pm 08:50 PM

MD5 값은 무엇입니까? 컴퓨터 과학에서 MD5(MessageDigestAlgorithm5)는 메시지를 다이제스트하거나 암호화하는 데 일반적으로 사용되는 해시 함수입니다. 일반적으로 32비트 16진수로 표시되는 고정 길이 128비트 이진수를 생성합니다. MD5 알고리즘은 1991년 Ronald Rivest에 의해 설계되었습니다. MD5 알고리즘은 암호화 분야에서 더 이상 안전하지 않은 것으로 간주되지만 여전히 데이터 무결성 확인 및 파일 확인에 널리 사용됩니다.

PHP 가치 분석: PHP에서 가치의 개념과 적용에 대한 자세한 설명 PHP 가치 분석: PHP에서 가치의 개념과 적용에 대한 자세한 설명 Mar 21, 2024 pm 09:06 PM

PHP 가치 분석: PHP의 가치 개념과 적용에 대한 자세한 설명 PHP 프로그래밍에서 가치는 매우 기본적이고 중요한 개념입니다. 이 기사에서는 PHP의 값 개념과 실제 프로그래밍에서의 적용에 대해 심층적으로 살펴 보겠습니다. 기본 값 유형, 변수, 배열, 객체 및 상수 등을 자세히 분석하고, 독자가 PHP의 값을 더 잘 이해하고 사용할 수 있도록 구체적인 코드 예제를 제공합니다. 기본 값 유형 PHP에서 가장 일반적인 기본 값 유형에는 정수, 부동 소수점, 문자열, 부울 및 널이 포함됩니다. 이러한 기본

Go에서 해결할 수 없는 가치 탐색 Go에서 해결할 수 없는 가치 탐색 Mar 25, 2024 am 09:33 AM

Go 언어에서는 일부 값을 주소 지정할 수 없습니다. 즉, 해당 값의 메모리 주소를 얻을 수 없습니다. 이러한 값에는 주소를 지정할 수 없는 상수, 리터럴, 표현식이 포함됩니다. 이 글에서는 이러한 주소 지정이 불가능한 값을 살펴보고 구체적인 코드 예제를 통해 그 특성을 이해해 보겠습니다. 먼저 상수의 몇 가지 예를 살펴보겠습니다. Go 언어에서는 상수 값이 컴파일 타임에 결정되고 액세스할 런타임 메모리 주소가 없기 때문에 상수에 주소를 지정할 수 없습니다. 다음은 샘플 코드입니다: packagemaini

C++ 프로그래밍, 그리드의 한 지점에서 다른 지점으로의 경로 수 찾기 C++ 프로그래밍, 그리드의 한 지점에서 다른 지점으로의 경로 수 찾기 Aug 29, 2023 pm 10:25 PM

이 기사에서는 A 지점에서 B 지점까지의 총 경로 수를 찾아야 하는 문제가 제공됩니다. 여기서 A와 B는 고정 지점입니다. 즉, A는 그리드의 왼쪽 상단 모서리 지점이고 B는 하단 모서리 지점입니다. 오른쪽 모서리 점, 예: −Input:N=5Output:252Input:N=4Output:70Input:N=3Output:20 주어진 문제에서 우리는 답을 공식화하고 간단한 관찰을 통해 결과를 도출할 수 있습니다. 해를 찾는 방법 이 방법에서는 그리드를 A에서 B로 교차할 때 오른쪽으로 n번, 아래로 n번 이동해야 한다는 것을 관찰하여 공식을 제시합니다. 이는 가능한 모든 경로 조합을 찾아야 함을 의미하므로 다음을 얻습니다.

Java 8의 선택적 클래스: filter() 메서드를 사용하여 null일 수 있는 값을 필터링하는 방법 Java 8의 선택적 클래스: filter() 메서드를 사용하여 null일 수 있는 값을 필터링하는 방법 Aug 01, 2023 pm 05:27 PM

Java8의 Optional 클래스: filter() 메서드를 사용하여 null 가능성이 있는 값을 필터링하는 방법 Java8에서 Optional 클래스는 null 가능성이 있는 값을 더 잘 처리하고 NullPointerException 발생을 방지할 수 있는 매우 유용한 도구입니다. Optional 클래스는 잠재적인 null 값을 조작하는 많은 메서드를 제공하며 중요한 메서드 중 하나는 filter()입니다. filter() 메서드의 기능은 다음과 같습니다. Option

C++를 사용하여 K-ary 트리에서 가중치가 W인 경로 수 찾기 C++를 사용하여 K-ary 트리에서 가중치가 W인 경로 수 찾기 Sep 16, 2023 pm 06:09 PM

이 기사에서는 C++를 사용하여 K-진 트리에서 가중치 W를 갖는 경로 수를 계산합니다. K-진 트리는 각 노드에 K개의 자식이 있고 각 가장자리에 가중치가 있으며 노드에서 모든 자식까지 가중치가 1에서 K로 감소하는 트리입니다. 가중치 W가 있고 가중치 M이 있는 최소 하나의 간선이 있는 루트 노드에서 시작하여 누적 경로 수를 계산해야 합니다. 예를 들면 다음과 같습니다. Input:W=4,K=3,M=2Output:6 주어진 문제에서 dp를 사용하여 시간과 공간의 복잡성을 줄입니다. 메모이제이션을 사용하면 프로그램을 더 빠르게 만들고 더 큰 제약 조건에 맞게 조정할 수 있습니다. 방법 이 방법에서는 트리를 순회하고 사용을 추적합니다.

Java Map의 매력을 탐색하고 데이터 처리 문제를 해결합니다. Java Map의 매력을 탐색하고 데이터 처리 문제를 해결합니다. Feb 19, 2024 pm 07:03 PM

맵 설명 맵은 키-값 쌍을 저장할 수 있는 데이터 구조입니다. 키는 고유하며 값은 모든 유형의 객체일 수 있습니다. Map 인터페이스는 키-값 쌍을 저장하고 검색하는 방법을 제공하며 맵에서 키-값 쌍을 탐색할 수 있도록 해줍니다. Map 유형 Java에는 여러 가지 Map 구현이 있으며 가장 일반적인 것은 HashMap, TreeMap 및 LinkedHashMap입니다. HashMap: 해시 테이블 기반의 Map 구현으로 빠른 검색, 삽입 및 삭제의 특성을 가지지만 순서가 지정되지 않습니다. 즉, Map의 키-값 쌍의 순서가 임의로 결정됩니다. TreeMap: 빠른 검색, 삽입 및 삭제 기능을 갖춘 레드-블랙 트리 기반의 Map 구현입니다.

JavaScript에서 값을 부울로 변환하면 어떻게 되나요? JavaScript에서 값을 부울로 변환하면 어떻게 되나요? Sep 02, 2023 am 09:21 AM

JavaScript의 Boolean() 메서드를 사용하여 부울 값으로 변환합니다. 다음 코드를 실행하여 JavaScript에서 [50,100]을 부울로 변환하는 방법을 이해할 수 있습니다. 실시간 데모 예시<!DOCTYPEhtml><html> <body> <p>Convert[50,100]toBoolean</p> &

See all articles