Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में दिए गए तीन क्रमबद्ध सरणियों में से तीन निकटतम तत्व खोजें

मान लीजिए कि हमारे पास ए, बी और सी से तीन क्रमबद्ध सरणियाँ हैं, और क्रमशः ए, बी और सी से तीन तत्व i, j और k हैं जैसे कि max(|A[i] – B[i]|, |B[j] – C [k]|, |C[k] - A[i]|) को छोटा किया जाता है। तो अगर ए =[1, 4, 10], बी =[2, 15, 20], और सी =[10, 12], तो आउटपुट तत्व 10, 15, 10 हैं, ये तीनों ए, बी और सी से हैं।

मान लीजिए कि A, B और C का आकार क्रमशः p, q और r है। अब इसे हल करने के लिए इन चरणों का पालन करें -

  • i :=0, j :=0 और k :=0
  • अब निम्न कार्य करें जबकि i

  • A[i], B[j] और C[k] का न्यूनतम और अधिकतम पता लगाएं
  • अंतर की गणना करें:=अधिकतम (एक्स, वाई, जेड) - मिनट (ए [i], बी [जे], सी [के])
  • यदि परिणाम वर्तमान परिणाम से कम है, तो इसे नए परिणाम में बदलें
  • ऐरे के पॉइंटर को बढ़ाएँ जिसमें न्यूनतम हो।

उदाहरण

#include <iostream>
using namespace std;
void getClosestElements(int A[], int B[], int C[], int p, int q, int r) {
   int diff = INT_MAX;
   int i_final =0, j_final = 0, k_final = 0;
   int i=0,j=0,k=0;
   while (i < p && j < q && k < r) {
      int min_element = min(A[i], min(B[j], C[k]));
      int max_element = max(A[i], max(B[j], C[k]));
      if (max_element-min_element < diff){
         i_final = i, j_final = j, k_final = k;
         diff = max_element - min_element;
      }
      if (diff == 0)
         break;
      if (A[i] == min_element)
         i++;
      else if (B[j] == min_element)
         j++;
      else
         k++;
   }
   cout << A[i_final] << " " << B[j_final] << " " << C[k_final];
}
int main() {
   int A[] = {1, 4, 10};
   int B[] = {2, 15, 20};
   int C[] = {10, 12};
   int p = sizeof A / sizeof A[0];
   int q = sizeof B / sizeof B[0];
   int r = sizeof C / sizeof C[0];
   cout << "Closest elements are: ";
   getClosestElements(A, B, C, p, q, r);
}

आउटपुट

Closest elements are: 10 15 10

  1. C++ में दिए गए सरणी के तत्वों के भाज्य का GCD ज्ञात कीजिए

    मान लीजिए कि हमारे पास एन तत्वों के साथ एक सरणी ए है। हमें सरणी के सभी तत्वों के भाज्य का GCD ज्ञात करना है। मान लीजिए कि तत्व {3, 4, 8, 6} हैं, तो भाज्य का GCD 6 है। यहाँ हम ट्रिक देखेंगे। चूँकि दो संख्याओं का GCD वह सबसे बड़ी संख्या है, जो दोनों संख्याओं को विभाजित करती है, तो दो संख्याओं के भाज्य

  1. सी # प्रोग्राम तीन क्रमबद्ध सरणियों में सामान्य तत्वों को खोजने के लिए

    सबसे पहले, तीन क्रमबद्ध सरणियों को प्रारंभ करें - int []one = {20, 35, 57, 70}; int []two = {9, 35, 57, 70, 92}; int []three = {25, 35, 55, 57, 67, 70}; तीन-सॉर्ट किए गए सरणियों में सामान्य तत्वों को खोजने के लिए, थोड़ी देर के लूप का उपयोग करके सरणियों के माध्यम से पुनरावृति करें और पहले सरणी को दू

  1. जावा प्रोग्राम दो क्रमबद्ध सरणियों से निकटतम जोड़ी खोजने के लिए

    दो क्रमबद्ध सरणी से निकटतम जोड़ी खोजने के लिए, जावा कोड इस प्रकार है - उदाहरण public class Demo {    void closest_pair(int my_arr_1[], int my_arr_2[], int arr_1_len, int arr_2_len, int sum){       int diff = Integer.MAX_VALUE;       int result_l = 0, result_r