원래 1에서 n까지의 숫자를 포함하는 집합 S가 있다고 가정합니다. 그러나 불행히도 일부 오류로 인해 집합의 숫자 중 하나가 집합의 다른 숫자와 중복되어 한 숫자가 반복되고 다른 숫자가 손실되었습니다. 이제 오류 후 이 세트의 데이터 상태를 나타내는 nums라는 배열이 있는 경우. 우리의 임무는 두 번 발생하는 숫자를 찾은 다음 놓친 숫자를 찾는 것입니다. 결과를 배열 형태로 반환합니다. 따라서 입력이 [1,2,3,4,4,6]과 같으면 출력은 [4,5]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 크기가
이진 검색 트리와 하나의 대상 값이 있다고 가정합니다. BST에 두 요소의 합이 주어진 목표와 같도록 존재하는지 여부를 확인해야 합니다. 따라서 입력이 다음과 같으면 그러면 출력이 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 배열 정의 v inorder() 함수를 정의하면 루트가 됩니다. 루트가 null이면 - 반환 inorder(루트의 왼쪽) 루트 값을 v에 삽입 inorder(루트의 왼쪽) findnode() 함수를 정의하면 k가 필요합니다.
로봇이 있고 시작 위치가 (0, 0)이라고 가정합니다. 일련의 이동이 있는 경우 이 로봇이 이동을 완료한 후 (0, 0)에서 끝나는지 확인해야 합니다. 이동 순서는 문자열로 제공되며 문자 move[i]는 i번째 이동을 나타냅니다. 기호는 오른쪽은 R, 왼쪽은 L, 위쪽은 U, 아래쪽은 D입니다. 로봇이 모든 이동을 마친 후 원점으로 돌아오면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 따라서 입력이 RRULLD와 같으면 출력이 true가 됩니다. 오른쪽 2단위, 위로 올라가고, 왼쪽 2단위, 다시 아래로, 이것
이미지의 그레이 스케일을 나타내는 2D 행렬 M이 있다고 가정하고 각 픽셀의 그레이 스케일이 모든 8개 주변 픽셀과 자체의 평균 그레이 스케일(반올림)이 되도록 더 부드럽게 설계해야 합니다. 셀 주변에 8개 미만의 셀이 있는 경우 가능한 모든 픽셀을 변환합니다. 따라서 입력이 다음과 같으면 1 1 1 1 0 1 1 1 1 그러면 출력은 0 0 0 0 0 0 0 0 0 이 문제를 해결하기 위해 다음 단계를 따릅니다. − R :=M의 행 수 C :=의 열 수 배열 정의 d ={ -1, 0, 1 }
이 문제에서 우리는 정수와 숫자 k의 배열 rr[]을 받습니다. 우리의 임무는 C++에서 크기 k의 부분열의 최대 곱을 찾는 프로그램을 만드는 것입니다. 문제 설명 − 여기에서 요소의 최대 곱을 갖는 크기 k, 1<=k <=n의 부분 수열을 찾아야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[] = {1, 5, 6, -2, 0, 4} , k = 3 출력 120 설명 최대 곱을 갖는 크기 3의 부분 수열은 (5, 6, 4)입니다. 제품은 120입니다. 솔루션 접근 방식 이 문제를 해결하기 위해 먼저 배열
이 문제에서는 n개의 노드가 있는 무방향 연결 트리 T가 주어집니다. 우리의 임무는 C++의 트리에서 교차하지 않는 두 경로의 최대 곱을 찾는 프로그램을 만드는 것입니다. 문제 설명 - 트리에서 교차하지 않는 두 경로의 최대 곱 찾기. 흥미롭지 않은 모든 경로를 찾은 다음 길이의 곱을 찾습니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 그래프 - 출력 8 설명 고려되는 교차하지 않는 경로는 C-A-B입니다. 및 F-E-D-G-H . 길이는 2와 4입니다. 제품 =8입니다. 솔루션 접근 방식 이 문제에 대한 해
이 문제에서는 배열 arr[]이 제공됩니다. 우리의 임무는 C++의 배열에서 최대 곱 4배(크기 4의 하위 시퀀스)를 찾는 프로그램을 만드는 것입니다. 코드 설명 − 여기에서 모든 요소의 곱이 최대가 되도록 4배(크기 4의 부분 수열)를 찾아야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[] = {4, -2, 5, -6, 8} 출력 840 설명 쿼드러플(-3, 5, -7, 8)과 제품 840. 해결 방법 주어진 문제에 대해 여러 가지 해결책이 있을 수 있습니다. 한 가지 간단한 솔루션은 배열을 순회하여
이 문제에서는 정수 배열 arr[]이 제공됩니다. 우리의 임무는 최대 곱 하위 배열을 찾는 프로그램을 만드는 것입니다 - 두 개의 Traversalsin C++를 사용합니다. 문제 설명 − 여기 배열에서 인덱스 0과 다른 인덱스(n-1)의 두 순회를 사용하여 최대 곱 하위 배열을 찾습니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[] = {4, -2, 5, -6, 0, 8} 출력 240 예 Subarray = {4, -2, 5, -6} Maximum product = 4 * (-2) * 5 * (-6) = 240
이 문제에서는 정수 배열(양수 및 음수)이 제공됩니다. 우리의 임무는 C++에서 최대 ProductSubarray를 계산하는 프로그램을 만드는 것입니다. 문제 해결 − 여기에 양수, 음수, 0을 포함하는 배열이 있습니다. 배열의 요소에 의해 생성된 하위 배열의 곱을 찾아야 합니다. 그리고 하위 배열의 곱을 최대화합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 arr[] = {-1, 2, -7, -5, 12, 6} 출력 5040 설명 최대 곱이 있는 하위 배열은 {2, -7, -5, 12, 6}입니다. Product
이 자습서에서는 배열의 최대 제품 하위 집합을 찾는 프로그램에 대해 설명합니다. 이를 위해 양수 및 음수 값을 포함하는 배열이 제공됩니다. 우리의 임무는 배열의 하위 집합에 대한 최대 곱을 찾는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; int maxProductSubset(int a[], int n) { if (n == 1) return a[0]; int max_ne
이 문제에서 i번째 날의 특정 주식 가격을 나타내는 배열 stkprice[]가 제공됩니다. 우리의 임무는 C++에서 주식을 사고 팔고 난 후 최대 이익을 계산하는 프로그램을 만드는 것입니다. 문제 설명 − 여기서 이익을 얻으려면 주식을 언제 사서 팔 수 있는지 확인해야 합니다. 이익을 얻으려면 낮은 가격에 주식을 사서 가격이 오를 때 팔아야 합니다. 그리고 드롭이 다시 발생하면 동일하게 반복하십시오. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 stkprice[] = {120, 310, 405, 210, 150, 550}
이 문제에서는 유리수(각 행에 하나씩)를 포함하는 2차원 배열이 제공됩니다. 우리의 임무는 C++의 배열에서 최대 유리수(또는 분수)를 계산하는 프로그램을 만드는 것입니다. 문제 설명 - 2차원 배열은 [n][2] 형식입니다. 각 행에는 유리수 방정식 a/b에서 a와 b의 값을 나타내는 두 개의 정수 값이 있습니다. 이 모든 유리수 중에서 가장 큰 수를 찾아야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 rat[][] = { {3, 2}, {5, 7}, &
이 문제에서는 부울 값(즉, 0과 1)과 정수 K로 구성된 2차원 배열 arr[]이 주어집니다. 우리의 임무는 이진 행렬을 최대 K번 뒤집은 후 최대 점수를 찾는 프로그램을 만드는 것입니다. C++. 문제 설명 − 여기에서 2차원 배열에 대해 k가 이동하려면 배열의 요소에 의해 생성되는 숫자를 찾아야 합니다. 각 이동에서 행이나 열을 가져와 행이나 열의 모든 요소를 뒤집습니다. 행렬의 행에서 K번 뒤집힌 후 생성된 수를 최대화해야 한다는 점을 염두에 두고 선택을 할 것입니다. 그리고 행에 생성된 모든 숫자의 합계를 반환해야 합
이 문제에서는 정수 배열 arr[]이 제공됩니다. 우리의 임무는 C++에서 인접 요소를 고려하지 않고 배열의 최대 설정 비트 합계를 계산하는 프로그램을 만드는 것입니다. 문제 설명 − 여기에 배열 arr[]이 있습니다. 각 숫자에 대해 설정된 비트 수를 찾아야 합니다. 그런 다음 배열의 인접한 요소에서 최대 세트 비트 합계를 찾습니다. 즉, [i] + a[i+2]의 최대 합 …. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[] = {1, 4, 6, 7} 출력 4 설명 요소가 이진 형식인 배열 arr[] = {01,
이 튜토리얼에서는 주어진 조건을 만족하는 서브 어레이의 최대 크기를 찾는 프로그램에 대해 논의할 것입니다. arr[k + 1] 및 k가 짝수일 때 arr[k] k가 짝수일 때 arr[k + 1], k가 홀수일 때 arr[k]
이 튜토리얼에서는 모두 1인 최대 크기의 직사각형 이진 부분행렬을 찾는 프로그램에 대해 논의할 것입니다. 이를 위해 0과 1을 포함하는 2D 행렬이 제공됩니다. 우리의 임무는 하나만 포함하는 가장 큰 2D 행렬 하위 집합을 찾는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; #define R 4 #define C 4 //finding the maximum area int maxHist(int row[]) { stack<int> resu
음수가 아닌 값을 가진 비어 있지 않은 특수 이진 트리가 있다고 가정합니다. 여기에서 이 트리의 각 노드에는 정확히 2개 또는 0개의 자식이 있습니다. 노드에 두 개의 자식이 있는 경우 이 노드의 값은 두 자식 중 작은 값입니다. 즉, [root.val =root.left.val, root.right.val의 최소값]이라고 말할 수 있습니다. 이러한 이진 트리가 있으면 전체 트리에서 모든 노드의 값으로 구성된 집합에서 두 번째 최소값을 찾아야 합니다. 그러한 요소가 없으면 대신 -1을 반환합니다. 따라서 입력이 다음과 같으면
정수 배열이 있다고 가정합니다. 가장 긴 연속 증가 부분 배열의 길이를 찾아야 합니다. 따라서 입력이 [2,4,6,5,8]과 같으면 출력은 3이 됩니다. 가장 긴 연속 증가 부분 수열은 [2,4,6]이고 길이는 3입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 숫자의 크기가 <=1이면 - 숫자의 반환 크기 답변 :=1, 개수 :=1 초기화 i의 경우:=0, i <숫자의 크기일 때 업데이트(i를 1만큼 증가), 수행 - nums[i]
양의 정수가 있다고 가정하고 비트가 교차하는지 확인해야 합니다. 따라서 인접한 두 비트는 항상 다른 값을 갖습니다. 따라서 입력이 10과 같으면 10의 이진 표현이 1010이므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − p :=n AND 1 n <2이면 - 참을 반환 n :=n/2 n이 0이 아닌 동안 − c :=n AND 1 c XOR p가 0과 같으면 - 거짓 반환 p :=c n :=n/2 참을 반환 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − 예시 #include
문자열 s가 있다고 가정하고 0과 1의 수가 같은 연속적인 하위 문자열의 수를 찾아야 하며 이러한 하위 문자열의 모든 0과 모든 1이 연속적으로 그룹화됩니다. 부분 문자열이 여러 번 발생하면 발생한 횟수로 계산됩니다. 따라서 입력이 11001100과 같으면 하위 문자열이 1100, 10,0011, 01, 1100, 10이므로 출력은 6이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 크기가 2인 배열 cnt를 정의하고 0으로 채웁니다. res :=0 초기화 i의 경우:=0, i <길이 s일 때 업데이트(i를 1만