Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++
  • C 프로그래밍
  •   
  • C++
  •   
  • Redis
  •   
  • BASH 프로그래밍
  •   
  • Python
  •   
  • Java
  •   
  • 데이터 베이스
  •   
  • HTML
  •   
  • JavaScript
  •   
  • 프로그램 작성
  •   
  • CSS
  •   
  • Ruby
  •   
  • SQL
  •   
  • IOS
  •   
  • Android
  •   
  • MongoDB
  •   
  • MySQL
  •   
  • C#
  •   
  • PHP
  •   
  • SQL Server
  • C++

    1. C++의 N-ary 트리 수준 순서 순회

      n-ary 트리가 있다고 가정하고 노드 값의 레벨 순서 순회를 반환해야 합니다. Nary-Tree 입력 직렬화는 레벨 순서 순회로 표현됩니다. 여기에서 각 하위 그룹은 null 값으로 구분됩니다(예제 참조). 따라서 다음 트리는 [1,null,3,2,4,null,5,6]으로 나타낼 수 있습니다. 출력은 [[1],[3,2,4],[5,6]]입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 하나의 행렬을 만들고 루트가 null이면 를 반환합니다. 하나의 큐 q를 만들고 루트 삽입 q가 비어 있

    2. C++의 겹치지 않는 간격

      간격 모음이 있다고 가정합니다. 나머지 구간이 겹치지 않게 하기 위해 제거해야 하는 최소 구간 수를 찾아야 합니다. 따라서 간격이 [[1,2], [2,3], [3,4], [1,3]]이면 출력은 1이 됩니다. 나머지는 모두 겹치지 않습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=배열의 크기 n이 0이면 0을 반환합니다. 개수 :=1 간격의 종료 시간을 기준으로 배열 정렬 end :=첫 번째 간격의 종료 날짜 범위 1에서 n – 1까지의 i에 대해 =끝이면 end :=ar

    3. C++의 BST에서 노드 삭제

      이진 검색 트리가 있다고 가정합니다. 하나의 키 k를 가져와서 BST에서 주어진 키 k를 삭제하고 업데이트된 BST를 반환해야 합니다. 트리가 다음과 같다면 - 키 k =3이면 출력 트리는 -가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 루트 노드를 삭제하기 위해 deleteRoot()라는 메서드를 정의하면 다음과 같이 작동합니다. 루트가 null이면 null을 반환합니다. 루트에 오른쪽 하위 트리가 없으면 루트의 왼쪽을 반환 x :=루트의 순서 없는 계승자 x의 왼

    4. C++에서 풍선을 터뜨리기 위한 최소 화살표 수

      2차원 공간에 몇 개의 구형 풍선이 펼쳐져 있다고 가정합니다. 각 풍선에는 수평 지름의 시작 좌표와 끝 좌표가 있습니다. 시작은 항상 끝보다 작습니다. 최대 104개의 풍선이 있을 것입니다. 하나의 화살표는 x축을 따라 다른 지점에서 정확히 수직으로 쏠 수 있습니다. xstart에서 xend까지의 위치가 xstart인 풍선은 xstart =x =xend인 경우 x를 향해 쏜 화살로 폭발합니다. 발사할 수 있는 화살의 수에는 제한이 없습니다. 한 번 발사된 화살은 계속 무한히 날아간다고 가정하자. 모든 풍선을 터뜨리기 위해 쏴야 하는

    5. C++의 원형 배열 루프

      길이 3의 0. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=숫자 크기 n <2이면 false를 반환합니다. 0 ~ n - 1 범위의 i에 대해 nums[i] :=nums[i] mod n 0 ~ n – 1 범위의 i에 대해 nums[i] =0이면 다음 반복으로 이동합니다. 느린 =나, 빠른 =나; 0 느린 =느린 다음 fast :=fast 다음의 다음 느린 =빠른 경우 느린 경우 =다음 느린 경우 루프에서 나옵니다. true를 반환

    6. C++에서 가장 자주 사용되는 하위 트리 합계

      트리의 루트가 있다고 가정하고 가장 빈번한 하위 트리 합계를 찾아야 합니다. 노드의 하위 트리 합계는 실제로 해당 노드(노드 자체 포함)를 기반으로 하는 하위 트리에 의해 형성된 모든 노드 값의 합계입니다. 가장 빈번한 하위 트리 합계는 실제로 동률이 있는 경우 빈도가 가장 높은 모든 값을 임의의 순서로 반환합니다. 따라서 트리가 [5,2,-5]와 같으면 [2]를 반환합니다. 2는 두 번 발생하지만 -5는 한 번만 발생하기 때문입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 두 개의 맵 m과 freq를 정의하고

    7. C++에서 왼쪽 하단 트리 값 찾기

      이진 트리가 있다고 가정합니다. 우리는 그 트리의 마지막 행의 가장 왼쪽 값을 찾아야 합니다. 트리가 다음과 같다면 - 마지막 행이 [7, 4]이고 가장 왼쪽 요소가 7이므로 출력은 7이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 처음에 ans와 lvl 변수를 0으로 정의 solve()라고 하는 하나의 메소드를 정의하면 트리 노드가 사용되며 level, 레벨은 초기에 0입니다. 이것은 다음과 같이 작동합니다 - 노드가 null이면 반환 lvl이면 ans :=노드 값이고 lvl :=

    8. C++의 각 트리 행에서 가장 큰 값 찾기

      이진 트리가 있다고 가정하고 해당 트리의 각 수준에서 가장 큰 요소를 찾아야 합니다. 트리가 다음과 같다면 - 그러면 출력은 [3,5,8]이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ans라는 배열을 정의하십시오. 재귀 함수 solve()를 정의하면 트리 노드가 사용되며 레벨은 초기에 0입니다. 이 메소드는 −와 같이 작동합니다. 노드가 null이면 반환 level =ans의 크기이면 ans에 노드 값을 삽입하고, 그렇지 않으면 ans[level] :=ans[level] 및 노드

    9. C++의 최대 이진 트리

      정수 배열이 있다고 가정합니다. 해당 배열의 모든 요소는 고유합니다. 이 배열에 대한 최대 트리 구축은 다음과 같이 정의됩니다. - 루트는 배열의 최대 수를 유지합니다. 왼쪽 하위 트리는 하위 배열의 왼쪽에서 구성된 최대 트리를 최대 수로 나눈 값입니다. 오른쪽 하위 트리는 하위 배열의 오른쪽에서 구성된 최대 트리를 최대 수로 나눈 값입니다. 우리는 최대 이진 트리를 구성해야 합니다. 따라서 입력이 [3,2,1,6,0,5]와 같으면 출력은 -가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다.

    10. C++에서 이진 트리의 최대 너비

      이진 트리가 있다고 가정하고 주어진 트리의 최대 너비를 가져오는 함수를 정의해야 합니다. 여기서 트리의 너비는 모든 레벨 중 최대 너비입니다. 이진 트리는 전체 이진 트리와 동일한 구조를 갖지만 일부 노드는 null인 것으로 간주합니다. 한 수준의 너비는 실제로 끝 노드 사이의 길이입니다(수준에서 가장 왼쪽 및 가장 오른쪽의 null이 아닌 노드, 끝 노드 사이의 null 노드도 길이 계산에 포함됨). 트리가 다음과 같다면 - 마지막 레이어의 노드가 [5,3,null,9]이므로 최대 너비는 4입니다. 이 문제를 해결하기

    11. C++의 이진 트리 가지치기

      추가로 모든 노드의 값이 0 또는 1인 이진 트리의 헤드 노드 루트가 있다고 가정합니다. 1을 포함하지 않는 모든 하위 트리가 삭제된 동일한 트리를 찾아야 합니다. 트리가 다음과 같다면 - 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 재귀 메서드 solve()를 정의하면 노드가 사용됩니다. 방법은 다음과 같습니다 - 노드가 null이면 null을 반환합니다. 노드 왼쪽 :=해결(노드 왼쪽) 노드 오른쪽 :=solve(노드 오른쪽) 노드의 왼쪽이 null이고 노드의 오른쪽도 null이고 노

    12. C++의 최대 합 원형 부분배열

      A로 표시되는 정수의 원형 배열 C가 있다고 가정하고 C의 비어 있지 않은 하위 배열의 가능한 최대 합을 찾아야 합니다. 또한 하위 배열은 고정 버퍼 A의 각 요소를 최대 한 번만 포함할 수 있습니다. 배열이 [1,-2,3,-2]와 같으면 출력은 3이 됩니다. 이는 하위 배열[3]의 최대 합이 3이기 때문입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=v의 크기 크기가 n인 모든 배열 leftSum, leftSumMax, rightSum, rightSumMax 생성 leftSum[0] :=v[0

    13. C++에서 스택 시퀀스 검증

      두 개의 시퀀스를 푸시하고 고유한 값으로 팝한다고 가정하면 이것이 초기에 비어 있는 스택에 대한 푸시 및 팝 작업 시퀀스의 결과일 수 있는 경우에만 true를 찾아야 합니다. 따라서 입력이 push =[1,2,3,4,5]이고 pop =[4,5,3,2,1]이면 출력은 true가 됩니다. push(1), push(2), push(3), push(4), pop() :4, push(5), pop() :5, pop() :3, pop() :2, 팝() :1 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solve()라는 메서드를

    14. C++에서 등가 이진 트리 뒤집기

      이진 트리가 있다고 가정합니다. 이진 트리를 뒤집어야 합니다. 반전은 다음을 나타냅니다. 임의의 노드를 선택하고 왼쪽 및 오른쪽 하위 하위 트리를 교환합니다. 이제 이진 트리 X는 몇 번의 뒤집기 작업 후에 X에서 Y를 만들 수 있는 경우에만 이진 트리 Y와 같은 뒤집기입니다. 두 개의 이진 트리가 대칭 이동인지 여부를 결정하는 메서드를 작성해야 합니다. 트리는 루트 노드 root1 및 root2에 의해 제공됩니다. 따라서 나무가 - 값이 1, 3, 5인 노드를 뒤집으면 출력은 true가 됩니다. 이 문제를 해결하기 위

    15. C++에서 이진 트리의 완성도 확인

      이진 트리가 있다고 가정합니다. 트리가 완전한 이진 트리인지 여부를 확인해야 합니다. 레벨 n의 완전한 이진 트리는 n-1개의 완전한 레벨을 가지며 레벨 n의 모든 노드는 왼쪽부터 채워집니다. 따라서 입력 트리가 다음과 같은 경우 - 그러면 완전한 바이너리 트리이므로 출력은 true가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 트리가 비어 있으면 null을 반환합니다. 큐 q를 만들고 거기에 루트를 삽입하십시오. 플래그 설정 :=true q에는 몇 가지 요소가 있습니다. sz

    16. C++의 팬케이크 정렬

      배열 A가 있다고 가정하고 A에 대해 팬케이크 정렬 기술을 수행합니다. 여기서 주요 제약은 rev(arr, i)라는 연산 하나만 사용할 수 있다는 것입니다. 이것은 arr의 요소를 0에서 i번째 위치로 반전시킵니다. 이 아이디어는 선택 정렬과 같습니다. 배열의 크기를 줄인 끝에 max 요소를 반복적으로 배치합니다. 따라서 입력이 [54,85,52,25,98,75,25,11,68]과 같으면 결과는 [11,25,25,52,54,68,75,85,98]이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 크기 :=n

    17. C++의 이진 트리에서 코인 배포

      N개의 노드가 있는 이진 트리의 루트가 있다고 가정합니다. 여기서 트리의 각 노드에는 node.val 수의 코인이 있고 총 N개의 코인이 있습니다. 한 번의 이동으로 두 개의 인접한 노드를 선택하고 한 노드에서 다른 노드로 하나의 코인만 이동할 수 있습니다. (이동은 상위 노드에서 하위 노드로 또는 하위 노드에서 상위 노드로 수행될 수 있습니다.) 모든 노드가 정확히 하나의 코인을 갖도록 하는 데 필요한 이동 횟수를 찾아야 합니다. 트리가 다음과 같다면 - 그러면 출력은 3이 됩니다. 왼쪽 자식에서 루트로 2개의 코인을 보내고(

    18. C++의 티켓에 대한 최소 비용

      기차 여행으로 인기 있는 국가가 있다고 가정해 보겠습니다. 우리는 1년 전에 기차 여행을 계획했습니다. 우리는 여행할 날짜를 담고 있는 배열을 가지고 있습니다. 매일은 1에서 365 사이의 정수입니다. 기차표는 세 가지 다른 방식으로 판매됩니다 - 1일 이용권은 비용[0]달러에 판매됩니다. 1일 이용권은 비용[0]달러에 판매됩니다. 30일권을 [2]달러에 판매합니다. 여기에서 패스를 사용하면 여러 날의 연속 여행이 가능합니다. 예를 들어, 2일차에 7일권 1장을 받으면 7일 동안 여행할 수 있습니다(2일, 3일

    19. C++의 간격 목록 교차

      닫힌 간격 목록이 두 개 있다고 가정합니다. 여기서 각 간격 목록은 쌍으로 분리되고 정렬된 순서입니다. 이 두 구간 목록의 교차점을 찾아야 합니다. 닫힌 구간 [a, b]는 <=b로 표시됩니다. a <=x <=b인 실수 집합 x. 두 개의 닫힌 간격의 교집합은 비어 있거나 닫힌 간격으로 표시될 수 있는 실수 집합입니다. 따라서 입력이 A =[[0,2],[5,10],[13,23],[24,25]] 및 B =[[1,5],[8,12],[ 15,24],[25,27]], 출력은 [[1,2],[5,5],[8,10],[15,23],[24,24

    20. C++의 최대 이진 트리 II

      최대 트리의 루트 노드가 있다고 가정합니다. 최대 트리는 모든 노드가 하위 트리의 다른 값보다 큰 값을 갖는 트리입니다. 구성()이라는 메서드가 있다고 가정합니다. 이것은 목록 A에서 루트를 구성할 수 있습니다. 구성() 메서드는 다음과 같습니다. - 목록 A가 비어 있으면 null을 반환합니다. 그렇지 않으면 A[i]를 목록 A의 가장 큰 요소로 둡니다. 그런 다음 값이 A[i]인 루트 노드를 만듭니다. 루트의 왼쪽 자식은 구성([A[0], A[1], ..., A[i-1]])이 됩니다. 루트의 오른쪽 자식은

    Total 5992 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:142/300  20-컴퓨터/Page Goto:1 136 137 138 139 140 141 142 143 144 145 146 147 148