이 튜토리얼에서는 곱의 모든 반복 요소의 빈도 합이 2 * k보다 작거나 같도록 배열에서 최대 곱을 찾는 프로그램에 대해 논의할 것입니다. 이를 위해 배열과 정수 k가 제공됩니다. 우리의 임무는 모든 숫자의 빈도 합이 2 * k보다 작거나 같아야 하는 경우 배열에서 최대 곱을 찾는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; #define ll long long int //returning maximum product value ll maxProd(int arr[],
이 튜토리얼에서는 행렬에서 4개의 인접한 요소의 최대 곱을 찾는 프로그램에 대해 설명합니다. 이를 위해 정사각형 행렬이 제공됩니다. 우리의 임무는 위, 아래, 오른쪽, 왼쪽 또는 대각선이 될 수 있는 4개의 인접한 요소의 최대 곱을 찾는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; const int n = 5; //finding maximum product int FindMaxProduct(int arr[][n], int n) { int max
이 튜토리얼에서는 배열에서 삼중항(크기 3의 부분 수열)의 최대 곱을 찾는 프로그램에 대해 논의할 것입니다. 이를 위해 정수 배열이 제공됩니다. 우리의 임무는 해당 배열에서 최대 곱을 가진 요소의 삼중항을 찾는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; //finding the maximum product int maxProduct(int arr[], int n){ if (n < 3) return -
이 튜토리얼에서는 크기 3의 증가하는 부분 수열의 최대 곱을 찾는 프로그램에 대해 논의할 것입니다. 이를 위해 양의 정수 배열이 제공됩니다. 우리의 임무는 최대 곱을 가진 세 가지 요소의 부분 수열을 찾는 것입니다. 예시 #include<bits/stdc++.h> using namespace std; //returning maximum product of subsequence long long int maxProduct(int arr[] , int n) { int smaller[n];
이 튜토리얼에서는 증가하는 부분 수열의 최대 곱을 찾는 프로그램에 대해 논의할 것입니다. 이를 위해 정수 배열이 제공됩니다. 우리의 임무는 요소 수에 관계없이 배열의 하위 시퀀스의 최대 곱을 찾는 것입니다. 예시 #include <bits/stdc++.h> #define ll long long int using namespace std; //returning maximum product ll lis(ll arr[], ll n) { ll mpis[n]; //initiating
이 튜토리얼에서는 왼쪽과 오른쪽에서 다음으로 큰 인덱스의 최대 곱을 찾는 프로그램에 대해 설명합니다. 이를 위해 정수 배열이 제공됩니다. 우리의 임무는 최대 좌-우 곱(L(i)*R(i))을 갖는 요소를 찾는 것입니다. 여기서 L(i)은 왼쪽에서 가장 가까운 인덱스이고 현재 요소보다 크고 R(i)는 오른쪽에서 가장 가까운 인덱스입니다. 및 현재 요소보다 큼). 예시 #include <bits/stdc++.h> using namespace std; #define MAX 1000 //finding greater element
이 튜토리얼에서는 n개의 배열에서 증가하는 순서 요소의 최대 합을 찾는 프로그램에 대해 논의할 것입니다. 이를 위해 M 크기의 N 배열이 제공됩니다. 우리의 임무는 이전 배열의 요소가 다음 배열보다 작도록 각 배열에서 하나의 요소를 선택하여 최대 합을 찾는 것입니다. 예시 #include <bits/stdc++.h> #define M 4 using namespace std; //calculating maximum sum by selecting //one element int maximumSum(int a[][M], in
이 튜토리얼에서는 동적 프로그래밍을 사용하여 두 노드가 인접하지 않도록 바이너리 트리에서 노드의 최대 합을 찾는 프로그램에 대해 설명합니다. 이를 위해 이진 트리가 제공됩니다. 우리의 임무는 동적 프로그래밍을 사용하여 하위 집합의 두 노드가 직접 연결되지 않도록 최대 합을 갖는 하위 집합을 찾는 것입니다. 예 #include <bits/stdc++.h> using namespace std; //finding diameter using dynamic programming void dfs(int node, int paren
이 튜토리얼에서는 두 노드가 인접하지 않도록 바이너리 트리에서 노드의 최대 합을 찾는 프로그램에 대해 설명합니다. 이를 위해 이진 트리가 제공됩니다. 우리의 임무는 하위 집합의 두 노드가 직접 연결되지 않도록 최대 합을 갖는 하위 집합을 찾는 것입니다. 예 #include <bits/stdc++.h> using namespace std; //binary tree node structure struct node { int data; struct node *left, *righ
이 자습서에서는 특정 차이가 있는 쌍의 최대 합을 찾는 프로그램에 대해 설명합니다. 이를 위해 정수와 값 K를 포함하는 배열이 제공됩니다. 우리의 임무는 K보다 작은 차이를 갖는 요소를 쌍으로 만들고 마지막으로 분리된 집합에서 요소의 최대 합을 찾는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; //returning maximum sum of disjoint pairs int maxSumPairWithDifferenceLessThanK(int arr[], int N,
이 자습서에서는 음수가 허용되는 배열에서 쌍별 곱의 최대 합을 찾는 프로그램에 대해 설명합니다. 이를 위해 정수를 포함하는 배열이 제공됩니다. 우리의 임무는 pairwise 곱셈을 수행하는 동안 최대 합을 찾는 것입니다. 예시 #include <bits/stdc++.h> #define Mod 1000000007 using namespace std; //finding the maximum sum long long int findSum(int arr[], int n) { long long int su
이 자습서에서는 두 배열의 곱의 최대 합을 찾는 프로그램에 대해 설명합니다. 이를 위해 동일한 크기의 두 배열이 제공됩니다. 우리의 임무는 첫 번째 요소의 정확히 한 요소와 두 번째 배열의 한 요소를 곱하여 최대 합을 찾는 것입니다. 예시 #include<bits/stdc++.h> using namespace std; //calculating maximum sum by //multiplying elements int maximumSOP(int *a, int *b) { int sop = 0; &nb
이 튜토리얼에서는 배열에서 가장 작은 것과 두 번째로 작은 것의 최대 합을 찾는 프로그램에 대해 논의할 것입니다. 이를 위해 정수를 포함하는 배열이 제공됩니다. 우리의 임무는 배열의 가능한 모든 반복에서 가장 작은 요소와 두 번째로 작은 요소의 최대 합을 찾는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; //returning maximum sum of smallest and //second smallest elements int pairWithMaxSum(int ar
이 튜토리얼에서는 위에서 아래로 행렬에서 최대 합 경로를 찾는 프로그램에 대해 설명합니다. 이를 위해 N*N 크기의 행렬이 제공됩니다. 우리의 임무는 대각선으로 더 높은 셀로 이동하면서 위쪽 행에서 아래쪽 행까지의 최대 합 경로를 찾는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; #define SIZE 10 //finding maximum sum path int maxSum(int mat[SIZE][SIZE], int n) { if (n ==
이 튜토리얼에서는 배열의
이 자습서에서는 2D 행렬에서 최대 합 사각형을 찾는 프로그램에 대해 설명합니다. 이를 위해 매트릭스가 제공됩니다. 우리의 임무는 요소의 최대 합으로 부분행렬을 찾는 것입니다. 예시 #include<bits/stdc++.h> using namespace std; #define ROW 4 #define COL 5 //returning maximum sum recursively int kadane(int* arr, int* start, int* finish, int n) { int sum = 0, m
이 튜토리얼에서는 시작 값과 끝 값이 같도록 최대 합 하위 배열을 찾는 프로그램에 대해 설명합니다. 이를 위해 정수를 포함하는 배열이 제공됩니다. 우리의 임무는 요소가 양쪽 끝이 같도록 최대 합을 가진 하위 배열을 찾는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; //finding the maximum sum int maxValue(int a[], int n) { unordered_map<int, int> first, last; &n
이 튜토리얼에서 우리는 최소 k 개의 먼 요소를 가진 최대 합 부분 수열을 찾는 프로그램에 대해 논의할 것입니다. 이를 위해 정수와 값 K를 포함하는 배열이 제공됩니다. 우리의 임무는 모든 요소가 최소한 K 요소 떨어져 있도록 최대 합을 갖는 하위 시퀀스를 찾는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; //finding maximum sum subsequence int maxSum(int arr[], int N, int k) { int MS
S와 T라는 두 단어가 있다고 가정하고 S에서 T로 변환하는 데 필요한 최소 연산 수를 찾아야 합니다. 연산에는 세 가지 유형이 있습니다. 문자 삽입, 캐릭터 삭제 문자를 교체합니다. 따라서 입력 문자열이 evaluate 및 fluctuate이면 결과는 5가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=s의 크기, m :=t의 크기, n + 1 크기의 배열 dp 생성 범위 0에서 n까지의 i에 대해 dp[i] :=m + 1 크기의 새 배열 0에서 m 사이의 j에 대해:
배열이 있고 정렬되어 있다고 가정하고 배열이 우리에게 알려지지 않은 일부 피벗에서 회전한다고 가정합니다. 따라서 회전된 배열에서 최대값을 찾아야 합니다. 따라서 배열이 [3,4,5,1,2]와 같으면 출력은 5가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − low :=0 and high :=배열의 마지막 인덱스, n :=배열의 크기, ans :=0 낮음 <=높음 동안 중간 :=낮음 + (높음 - 낮음)/2 arr[low]