배열과 일부 쿼리가 제공되는 문제를 해결하기 위해. 이제 각 쿼리에서 범위가 제공됩니다. 이제 x와 xor의 합이 최대화되는 숫자를 찾아야 합니다. 예를 들면 Input : A = {20, 11, 18, 2, 13} Three queries as (L, R) pairs 1 3 3 5 2 4 Output : 2147483629 2147483645 2147483645 이 문제에서 우리는 1의 수를 미리 계산했기 때문에 각 위치의 숫자에 존재하는 1의 접두사 카운트를 취할 것이므로 L에서 R까지 주어진 범위에서 1의 수를 찾으려면 다음
주어진 문제를 해결하기 위해, 예를 들어 주어진 숫자와 주어진 배열의 XOR 합이 k와 같도록 숫자를 찾는 임무가 주어졌습니다. Input: arr[] = {1, 2, 3, 4, 5}, k = 10 Output: 11 Explanation: 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 11 = 10 Input: arr[] = { 12, 23, 34, 56, 78 }, k = 6 Output: 73 이 프로그램에서는 A^B =C, A^C =B인 경우 xor의 속성을 사용하고 이를 이 문제에 적용할 것입니다. 해결책을 찾기 위한 접근 방식
숫자의 합은 숫자의 디지털 근을 찾을 수 있습니다. 합계가 한 자리 숫자이면 디지털 근입니다. 이 튜토리얼에서 우리는 숫자의 범위와 정수 X가 주어지는 문제에 대해 논의할 것이고, 범위에서 몇 개의 숫자가 X와 같은 디지털 근을 가지고 있는지 계산해야 합니다. 여기서 X는 한 자리 숫자입니다. 예를 들면 입력:l =13, r =25, X =4출력:2설명:자릿수 합이 4인 범위 (13,25)의 숫자는 13과 22입니다.입력:l =11, r =57출력:6 해결책을 찾기 위한 접근 방식 간단한 접근 간단한 접근 방식으로 l에서 r까지의
배열이 주어지고 비어 있지 않은 적어도 하나의 하위 배열의 비트 AND인 모든 가능한 정수를 찾아야 하는 문제를 해결하려면 - Input : nums[ ] = { 3, 5, 1, 2, 8 } Output : { 2, 5, 0, 3, 8, 1 } Explanation: 2 is the bitwise AND of subarray {2}, 5 is the bitwise AND of subarray {5}, 0 is the bitwise AND of subarray {1, 2}, {2, 8} and {1, 2, 8}, 3 is the bi
고유한 요소로 구성된 배열이 제공되는 문제를 해결합니다. 이제 우리의 임무는 모든 쌍이 균등하게 나눌 수 있는 부분 집합을 찾는 것입니다. 예를 들어 모든 큰 요소는 모든 작은 요소로 나눌 수 있습니다. 입력 :arr[] ={10, 5, 3, 15, 20}출력 :3설명 :가장 큰 부분집합은 10, 5, 20.10은 5의 배수, 20은 10의 배수입니다.입력 :arr[] ={18, 1, 3, 6, 13, 17}출력:4설명:가장 큰 부분 집합은 18, 1, 3, 6입니다. 부분 수열에서 3은 1,6의 3, 18의 6의 배수입니다. 이
이 자습서에서는 고유한 양의 정수 배열이 제공되는 문제에 대해 설명합니다. 모든 쌍에 대해 더 큰 요소가 더 작은 요소로 나뉘도록 가장 큰 부분집합을 찾아야 합니다. 예를 들어 - Input: nums[ ] = { 1, 4, 2, 6, 7} Output: 1 2 4 Explanation: All Divisible subsets are: (1, 2, 4), (1, 2, 6), (1, 7), etc We have 2 subsets of length 3 in which all the pairs satisfy the condition.
주어진 이진 트리. 이제 우리는 1과 0의 수가 같은 가장 큰 하위 트리를 찾는 임무를 받았습니다. 트리는 0과 1만 포함합니다. 해결책을 찾기 위한 접근 방식 이 접근 방식에서는 모든 노드를 0에서 -1 사이의 값으로 교체합니다. 이렇게 하면 합이 0인 가장 큰 하위 트리를 찾아야 하므로 프로그램이 더 간단해집니다. 예시 위 접근 방식에 대한 C++ 코드 #include <iostream> using namespace std; int maxi = -1; struct node { // structure
주어진 배열에서 모든 쌍의 합이 소수인 가장 큰 부분집합을 찾는 것. 최대 요소가 100000이라고 가정합니다. 예를 들어 - Input: nums[ ] = { 3, 2, 1,1 } Output: size = 3, subset = { 2, 1, 1 } Explanation: Subsets can be formed: {3, 2}, {2, 1} and { 2, 1, 1}, In {2, 1, 1} sum of pair (2,1) is 3 which is prime, and the sum of pairs (1,1) is 2 which is
주어진 이진 트리. 작업은 리프 노드를 쌍으로 바꾸는 것입니다. 예를 들어 - 입력 - 출력 - 우리는 두 개의 인접한 리프 노드를 가리키는 두 개의 포인터를 추적하고 주어진 문제에서 값을 교환합니다. 해결책을 찾기 위한 접근 방식 이 접근 방식에서는 트리를 탐색하고 리프 노드를 찾고 카운터를 추적하여 현재 카운트를 확인합니다. 주요 트릭은 카운터가 홀수이므로 첫 번째 포인터가 이제 해당 노드를 가리킵니다. 카운터가 짝수일 때 데이터를 교환하므로 리프 노드가 교환됩니다. 예시 위 접근 방식에 대한 C++ 코드 #
예를 들어 연결 목록에 있는 pairwise 노드를 교환한 다음 인쇄해야 하는 문제를 해결하려면 Input : 1->2->3->4->5->6->NULL Output : 2->1->4->3->6->5->NULL Input : 1->2->3->4->5->NULL Output : 2->1->4->3->5->NULL Input : 1->NULL Output : 1->NULL O(N)의 시간 복잡도를 갖
0에서 밑수 B까지의 모든 숫자를 포함하는 숫자를 해당 밑수에서 Pandigital 숫자라고 합니다. 그러나 일부 숫자는 1에서 9까지의 숫자를 가지며 0이 없는 범디지털 숫자라고 합니다. 범디지털 숫자의 몇 가지 예는 0123456789, 0789564312 등입니다. 이 튜토리얼에서 우리는 숫자와 밑수가 주어지는 문제에 대해 논의할 것이고, 그 숫자가 주어진 밑수에서 범디지털인지 여부를 확인해야 합니다. 예를 들면 - Input: num = “9651723467380AZ”, base = 10 Output:
이 튜토리얼에서 연결 리스트가 주어지면 리스트의 시작 부분에서 x보다 작은 모든 숫자를 유지하고 뒤에 나머지 숫자를 유지해야 합니다. 또한 이전과 동일한 순서를 유지해야 합니다. 예를 들어 Input : 1->4->3->2->5->2->3, x = 3 Output: 1->2->2->3->3->4->5 Input : 1->4->2->10 x = 3 Output: 1->2->4->10 Input : 10->4->20->1
이 문제에서는 숫자로 해석될 수 있는 문자열이 제공됩니다. 이제 문자열을 두 부분으로 분할하여 첫 번째 부분을 A로 나누고 두 번째 부분을 B로 나눌 수 있도록 해야 합니다(두 개의 정수가 주어짐). 예를 들어 - Input : str = "123", a = 12, b = 3 Output : YES 12 3 "12" is divisible by a and "3" is divisible by b. Input : str = "1200", a = 4, b = 3 O
이진 트리가 주어진 문제를 해결하기 위해. 이제 최대 굽힘 수가 있는 경로를 찾아야 합니다. 즉, 경로의 방향이 왼쪽에서 오른쪽으로 또는 그 반대로 변경될 때 굽힘으로 간주됩니다. 예를 들어 입력 - 출력 - 6 이제 이 접근 방식에서 우리는 트리를 가로질러 이전 움직임을 추적할 것입니다. 방향이 변경되면 단순히 굽힘 수를 업데이트한 다음 최대값을 찾습니다. 해결책을 찾기 위한 접근 방식 이 접근 방식에서 우리는 모든 경로를 횡단하고 답을 업데이트하는 최대 굽힘 수를 찾습니다. 예시 #include <bits/st
이 문제에서 2차원 행렬이 주어지면 최대 평균값을 갖는 경로를 찾아야 합니다. 경로의 경우 소스는 맨 위 왼쪽 셀이고 대상은 맨 아래 오른쪽 셀입니다(예:−). Input : Matrix = [1, 2, 3 4, 5, 6 7, 8, 9] Output : 5.8 Path with maximum average is, 1 -> 4 -> 7 -> 8 -> 9 Sum of the path is 29 and average is 29/5 = 5.8 이 문제에서는 오른쪽 또는 아래쪽으로만 이동할 수 있습니다. 이것은 N-1
펜타토프 수는 파스칼의 삼각형에서 다섯 번째 숫자로 설명됩니다. 이제 알다시피, 그것은 다섯 번째 숫자이므로 파스칼의 삼각형에 최소한 다섯 개의 숫자가 있어야 함을 의미하므로 이 시리즈의 첫 번째 숫자는 1 4 6 4 1에서 시작합니다. 파스칼 삼각형의 네 번째 행. 따라서 이 주어진 튜토리얼에서 n번째 펜타토프 번호를 찾아야 합니다. 예를 들면 Input : 1 Output : 1 Input : 4 Output : 35 다음 다이어그램에서 출력을 확인할 수 있습니다 - 이제 이 문제는 시리즈의 한 유형이므로 솔루션
Varignon의 평행 사변형은 사변형의 각 변의 중점을 연결하여 형성됩니다. 사변형 ABCD가 있다고 가정해 보겠습니다. 각 변의 중점은 P, Q, R 및 S입니다. 모든 중점을 연결하면 항상 Varignon의 평행사변형이라고 하는 평행사변형 PQRS를 형성합니다. 이 튜토리얼에서는 주어진 두 개의 대각선과 사변형의 면적으로 Varignon의 평행사변형의 둘레와 면적을 찾는 방법에 대해 논의할 것입니다. 예를 들어 - Input: d1 = 6, d2 = 9, Area = 12 Output: Perimeter = 15 Area
B[ I ]에 대한 인덱스가 최대화되도록 A의 순열을 출력해야 합니다. 예를 들어 Input: A = [12, 22, 41, 13], B = [1, 20, 10, 12] Output: 12, 22, 41, 13 Input: A = [2, 5, 9, 7], B = [1, 12, 4, 54] Output: 2 7 5 9 Multiple answers can be present in that case we are simply going to print any one of the answers. B[ i ]의 인덱스를 최대화해야 하므
문자열의 순열은 주어진 문자열의 문자가 어떤 형태로든 재배열될 때 형성됩니다. 이 튜토리얼에서는 C++의 표준 템플릿 라이브러리(예:)를 사용하여 주어진 문자열의 모든 순열을 인쇄하는 방법에 대해 논의할 것입니다. Input : s = “ADT” Output : “ADT”, “ATD”, “DAT”, “DTA”, “TAD”, “TDA” Explanation : In the given
n, r, k가 주어졌을 때, 예를 들어 특정 k가 항상 함께 발생하도록 n에서 r을 선택하는 방법을 찾아야 합니다. Input : n = 8, r = 5, k = 2 Output : 960 Input : n = 6, r = 2, k = 2 Output : 2 이 문제는 k가 함께 모이도록 n과 r의 순열을 찾아야 하기 때문에 이 문제에 대한 약간의 지식이 필요합니다. 해결책을 찾기 위한 접근 방식 이 질문에 대한 공식을 공식화해야 합니다. 그러면 답이 나옵니다. 예시 #include <bits/stdc++.h&g