배열 A가 있습니다. A는 모든 요소가 m번 발생하지만 한 요소는 한 번만 발생합니다. 그 고유한 요소를 찾아야 합니다. 따라서 입력이 A =[6, 2, 7, 2, 2, 6, 6], m =3인 경우 출력은 7이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − INT_SIZE :=8 * 정수형 변수의 크기 배열 개수 정의:INT_SIZE. 0으로 채우기 초기화 i의 경우:=0, i
이진 트리가 있다고 가정합니다. 오름차순으로 연속적인 값을 갖는 노드로 구성된 가장 긴 경로의 길이를 계산해야 합니다. 모든 노드는 길이가 1인 경로로 처리됩니다. 따라서 입력이 다음과 같으면 (11, 12, 13)이 최대 연속 경로이므로 출력은 3이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solve() 함수를 정의하면 루트, prev_data, prev_length,가 됩니다. 루트가 0이 아닌 경우 - prev_length 반환 cur_data :=루트 값 cur_data가 prev_data
다른 k개의 정렬된 배열이 있다고 가정합니다. 이 배열을 병합하고 정렬된 결과를 표시해야 합니다. 따라서 입력이 k =3이고 배열이 {2, 4},{3, 5, 7},{1, 10, 11, 12} 이면 출력은 1 2 3 4 5 7 10 11이 됩니다. 12 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 첫 번째 요소는 정수이고 두 번째 요소는 또 다른 정수 쌍으로 정의합니다. 이름을 ppi로 지정합니다. 배열 연산 정의 하나의 우선순위 대기열 q 정의 초기화 i의 경우:=0, i
컨셉 반드시 같은 크기는 아닌 주어진 3개의 정렬된 배열 A, B, C와 관련하여 가장 낮은 것, 즉 다음과 같은 트리플렛 A[i], B[j], C[k]의 최대값과 최소값 사이의 최소 절대 차이를 계산하십시오. 그것들이 각각 배열 A, B 및 C 아래에 있다는 것, 즉 최소화(max(A[i], B[j], C[k]) – min(A[i], B[j], C[k]) )). 입력 - A : [ 2, 5, 6, 9, 11 ] B : [ 7, 10, 16 ] C : [ 3, 4, 7, 7 ] 출력 - 1 설명 A[i] =6 , B[j]
2D 배열이 있다고 가정합니다. 각 셀이 해당 셀을 방문하는 데 드는 비용을 나타내는 비용으로 구성된 각 셀에서 총 소비 비용이 최소가 되는 왼쪽 상단 셀에서 오른쪽 하단 셀까지의 경로를 찾아야 합니다. 따라서 입력이 다음과 같으면 32 10 1 66 13 19 11 14 48 15 8 7 10 1 11 14 17 5 12 34 89 12 5 42 21 14 1 10 0 33 11 2 42 21 출력은 (32 + 11 + 14 + 48 + 66 + 13 +
컨셉 길이가 p이고 너비가 q인 보드가 있다고 가정하면 이 보드를 p*q 정사각형으로 분할하여 절단 비용이 최소가 되도록 해야 합니다. 이 보드의 경우 각 모서리에 대한 절단 비용이 제공됩니다. 간단히 말해서 비용을 최소화할 수 있는 절단 순서를 선택해야 합니다. 예시 위의 보드와 관련하여 정사각형으로 자르는 최적의 방법은 - 위의 경우 총 최소 비용은 65입니다. 다음 단계를 수행하여 계산됩니다. Initial Value : Total_cost = 0 Total_cost = Total_cost + edge_cost *
개념 A x B Chessboard가 주어졌을 때, 과제는 Chessboard가 두 부분으로 나뉘지 않도록 Chessboard에 만들 수 있는 최대 컷 수를 계산하는 것입니다. 예시 예는 아래에 나와 있습니다 - 입력 A = 2, B = 4 출력 Number of maximum cuts = 3 입력 A = 2, B = 2 출력 Number of maximum cuts = 1 방법 A =2, B =2인 경우 1컷만 만들 수 있습니다(빨간색 표시). 컷을 1개 더 만들면 체스판이 2개로 분할됩니다.
개념 b 노드와 a 간선의 주어진 무방향 그래프와 관련하여 주어진 그래프에서 오일러 회로를 구축하는 데 필요한 최소 간선을 결정하는 작업입니다. 입력 b = 3, a = 2 Edges[] = {{1, 2}, {2, 3}} 출력 1 1~3을 연결하면 오일러 회로를 만들 수 있습니다. 방법 그래프에 오일러 회로가 존재하기 위해서는 모든 노드가 짝수 차수를 가져야 합니다. 그 이유는 노드에 들어간 후 노드를 빠져나가기 위해 적용될 수 있는 간선이 있기 때문입니다. 이제 두 가지 경우가 있을 수 있습니다. - 그래프에서
컨셉 주어진 N개의 숫자와 관련하여 목표는 나머지 숫자의 GCD가 N개의 초기 GCD보다 크도록 숫자의 최소 제거를 결정하는 것입니다. GCD를 증가시킬 수 없는 경우 NO를 인쇄하십시오. 입력 b[] = {1, 2, 4} 출력 1 첫 번째 요소를 제거한 후 새 GCD는 2이며 initialGCD보다 큰 1입니다. 입력 b[] = {6, 9, 15, 30} 출력 3 초기 gcd는 3이고, 6과 9를 제거하여 3보다 큰 15의 gcd를 얻습니다. 9와 15를 제거하여 6의 gcd를 얻을 수도 있습니다. 방법 위의
개념 n개의 양의 정수로 구성된 배열 arr[]과 관련하여 작업은 배열에서 요소 arr[i]와 arr[j]를 결정하여 arr[i]Carr[j]가 최대 가능하도록 하는 것입니다. 1개 이상의 유효한 쌍과 관련하여 그 중 하나를 인쇄하십시오. 입력 arr[] = {4, 1, 2} 출력 4 2 4C1 = 4 4C2 = 4 2C1 = 4 (4, 2) is the only pairs with maximum nCr. 방법 n Cr 단조 증가 함수, 즉 n+1으로 처리됩니다. Cr n Cr . 우리는 이 사실을 적용하여 우리의 답에
컨셉 이 기사는 트리에서 두 노드의 LCA를 찾는 문제를 RMQ 문제로 축소하여 해결하는 방법을 설명합니다. 예 최하위 공통 조상(LCA) 루트 트리 T의 두 노드 a와 b 중 하나는 루트에서 가장 멀리 위치한 노드로 정의되며, 이 노드는 b와 b를 모두 자손으로 가지고 있습니다. 예를 들어, 아래 다이어그램에 따르면 노드 D와 노드 I의 LCA는 노드 B입니다. LCA 문제를 해결하기 위해 많은 접근 방식을 적용할 수 있습니다. 이러한 접근 방식은 시간 및 공간 복잡성 측면에서 다릅니다. 최소 검색어 범위(RMQ)
컨셉 주어진 Binary Tree와 관련하여 작업은 주어진 Binary Tree에서 최대 완전한 하위 트리의 크기를 결정하는 것입니다. 완전한 이진 트리 – 이진 트리는 모든 레벨이 마지막 레벨 없이 완전히 채워지고 마지막 레벨에 가능한 한 모든 키가 남아 있는 경우 완전한 이진 트리로 처리됩니다. 모든 Perfect Binary Tree는 Complete Binary 트리이지만 사실이 아닌 경우 반전. 트리가 완전하지 않으면 Perfect Binary Tree도 아님을 알 수 있습니다. 입력 &nb
컨셉 주어진 숫자 N과 관련하여 우리의 임무는 숫자에서 최소 자릿수(0 가능)를 삭제하여 형성할 수 있는 가장 큰 완전 큐브를 결정하는 것입니다. 따라서 목표에 도달하기 위해 주어진 숫자에서 임의의 숫자를 삭제할 수 있습니다. 어떤 정수 B에 대해 A =B^3이면 A를 완전 입방체라고 합니다. 숫자가 정육면체일 수 없는 경우 -1이 인쇄되는 것을 보았습니다. 예 N =1025라고 합시다. 위의 숫자에서 0을 삭제하면 나머지 숫자로 125가 나오는 것으로 나타났습니다. 이는 5(5 * 5 * 5 =125)의 세제곱근입니다.
개념 (, ), {, }, [ 및 ] 문자를 포함하는 주어진 문자열 str과 관련하여 작업은 대괄호가 균형을 이루는지 여부를 찾는 것입니다. 대괄호는 −인 경우 균형이 잡힌 것으로 표시됩니다. 닫는 대괄호는 같은 유형의 대괄호로 닫아야 합니다. 다시 올바른 순서에 따라 여는 대괄호를 닫습니다. 입력 - str =(()){} 출력 − 예 입력 - str =))(([][ 출력 - 아니요 방법 두 개의 변수와 b를 할당하여 비교할 두 개의 대괄호를 추적합니다. 여는 대괄호를 만나면 값이 증가하고 닫는
개념 Red-Black Tree와 관련하여 노드의 최대 높이는 최소 높이의 최대 2배입니다. 주어진 Binary Search Tree에 대해 다음 속성을 확인해야 합니다. 모든 노드와 관련하여 가장 긴 리프에서 노드까지의 경로 길이는 노드에서 리프까지의 최단 경로에서 노드의 두 배 이하입니다. 예 13 41 \ / \ 15 11 101 \ / \ 17 61 151 위의 나무는 적-검정 나무가 될 수 없습니다. 위의 나무는 색상 할당
개념 주어진 이진 트리에 대해 힙 속성이 있는지 여부를 확인해야 합니다. 이진 트리는 힙이 되기 위해 다음 두 가지 조건을 충족해야 합니다. – 이진 트리는 완전한 트리여야 합니다(즉, 마지막을 제외한 모든 레벨이 가득 차 있어야 함). 바이너리 트리의 모든 노드 값은 자식 노드보다 크거나 같아야 합니다(max-heap 고려). 예 다음 예와 관련하여 이 트리에는 힙 속성이 포함되어 있습니다. – 다음 예제에는 힙 속성이 없습니다. – 방법 위의 각각의 조건을 별도로 검증하는 것이 필요하며, 완전성
연결된 그래프가 있다고 가정합니다. 그래프가 이분법인지 여부를 확인해야 합니다. 그래프 채색이 가능한 경우 2가지 색을 적용하여 집합의 노드가 같은 색으로 채색되도록 합니다. 따라서 입력이 다음과 같으면 그러면 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − insert_edge() 함수를 정의하면 가장자리 배열 adj, u, v,가 사용됩니다. adj[u] 끝에 v 삽입 adj[v] 끝에 u를 삽입 주요 방법에서 다음을 수행합니다. adj[v]의 각 u에 대해, do 방문한[u]가 fals
개념 주어진 문자열이 숫자인 경우 유효성을 검사해야 합니다. 입력 - str =12.5 출력 - 사실 입력 - str =def 출력 - 거짓 입력 - str =2e5 출력 - 사실 입력 − 10e4.4 출력 - 거짓 방법 코드에서 다음과 같은 경우를 처리해야 합니다. 선행 및 후행 공백을 무시해야 합니다. 시작 부분의 +, - 및.는 무시해야 합니다. 문자열의 문자가 {+, -, ., e, [0-9]}에 속하는지 확인해야 합니다. .가 뒤에 오지 않도록 해야 합니다. 숫자는 점 문자 .
개념 배열 N, 다른 키 X 및 세그먼트 크기 K를 갖는 주어진 배열 arr1[]과 관련하여 작업은 arr1[]에서 키 X가 크기 K의 모든 세그먼트에 존재하는지 확인하는 것입니다. 입력 arr1[] = { 4, 6, 3, 5, 10, 4, 2, 8, 4, 12, 13, 4} X = 4 K = 3 출력 Yes 배열 {4, 6, 3}, {5, 10, 4}, {2, 8, 4} 및 {12, 13, 4}에는 크기가 K인 겹치지 않는 4개의 세그먼트가 있습니다. 4는 모든 세그먼트에 있습니다. 입력 arr1[] = { 22,
개념 주어진 무한체스판과 같은 규칙으로 무한체스판에 주어진 N개의 기사좌표(-10^9 <=x, y <=10^9)와 왕좌표에 대하여 킹은 체크메이트인지 아닌지. 입력 a1[] = { { 2, 1 }, { 1, 3 }, { 3, 6 },{ 5, 5 }, { 6, 1 }, { 7, 3 }} king -> {4, 3} 출력 Yes 킹은 체크메이트이기 때문에 움직일 수 없습니다. 입력 a1 [] = {{1, 1}} king -> {3, 4} 출력 No 왕은 유효한 움직임을 할 수 있습니다. 방법 여기에서