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

सी ++ में श्रेणी योग प्रश्नों के बाद दिए गए सरणी से प्रारंभिक सरणी खोजें

इस समस्या में, हमें आकार N का एक सरणी res[] दिया जाता है। हमारा कार्य श्रेणी योग प्रश्नों के बाद दिए गए सरणी से प्रारंभिक सरणी ढूंढना है।

हमें उस प्रारंभिक सरणी को खोजने की आवश्यकता है जो उस पर [s, e, val] क्वेरी करने पर सरणी rel[] लौटाएगी।

प्रत्येक [s, e, val] क्वेरी को

. के रूप में हल किया जाता है

s -> प्रारंभिक अनुक्रमणिका

ई -> एंडिंग इंडेक्स

वैल -> सरणी में s से e तक प्रत्येक तत्व में जोड़ा जाने वाला अद्यतन मान।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

Input : rel[] = {7, 4, 8}
Query[][] = {{1, 2, 1},
{0, 1, 3}}
Output : {4, 0, 7}

स्पष्टीकरण -

initialArray = {4, 0, 7}; query = {1, 2, 1}; finalArray = {4, 1, 8}
initialArray = {4, 1, 8}; query = {0, 1, 3}; finalArray = {7, 4, 8}

समाधान दृष्टिकोण

समस्या का एक सरल समाधान सभी प्रश्नों का पता लगाना है, क्योंकि सभी प्रश्नों को हल करने के तरीके का उपयोग करके उन्हें हल किया जाता है, फिर अंत में पाए गए सरणी को वापस कर दिया जाता है। यहां, प्रारंभिक ऐरे को खोजने के लिए, हमें इसे विपरीत तरीके से संचालित करने की आवश्यकता है, अर्थात इसे दिए गए सरणी से घटाएं।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <iostream>
using namespace std;
void calcInitialArrayQueries(int arr[], int n, int query[][3], int q) {
   for (int i = 0; i < q; i++) {
      for (int j = query[i][0];j <= query[i][1]; j++) {
         arr[j] = arr[j] - query[i][2];
      }
   }
   for (int i = 0; i < n; i++)
      cout<<arr[i]<<" ";
}
int main() {
   int arr[] = { 5, 1, 8, 2, 9};
   int n = sizeof(arr) / sizeof(arr[0]);
   int query[][3] = { {0, 2, -2}, {1, 4, 3}};
   int q = sizeof(query) / sizeof(query[0]);
   cout<<"Initial array : "; calcInitialArrayQueries(arr, n, query, q);
   return 0;
}

आउटपुट

Initial array : 7 0 7 -1 6

  1. C++ में दिए गए ऑब्जेक्ट्स की सरणी से अधिकतम ऊंचाई पिरामिड खोजें

    मान लीजिए कि हमारे पास n वस्तुओं की एक सरणी है। प्रत्येक वस्तु की चौड़ाई W [i] होती है। हमें उन्हें पिरामिड के रूप में व्यवस्थित करना होगा जैसे - ith की कुल चौड़ाई (i + 1)वें से कम है ith में वस्तुओं की कुल संख्या (i + 1)वें से कम है उदाहरण के लिए, यदि वज़न [40, 100, 20, 30] जैसा है, तो आउट

  1. अद्यतन के बिना श्रेणी योग प्रश्नों के लिए सी ++ कार्यक्रम?

    हमें अनुक्रमणिका i से अनुक्रमणिका j तक के तत्वों के योग की गणना करने की आवश्यकता है। i और j इंडेक्स मानों वाली क्वेरी को कई बार निष्पादित किया जाएगा। Input:arr[] = {5, 6, 3, 4, 1 } i = 1, j =3 Output: 13 स्पष्टीकरण 6 + 3 + 4 = 13 sum[] = {5, 6+5, 3+6+5, 4+3+6+5, 1+4+3+6+5 } sum[]={5,11,14,18,19}

  1. सी # का उपयोग करके बैकट्रैकिंग द्वारा दिए गए सरणी से लक्ष्य राशि कैसे प्राप्त करें?

    लक्ष्य योग समस्या एक उपसमुच्चय को खोजने की समस्या है जैसे कि तत्वों का योग एक दी गई संख्या के बराबर हो। बैकट्रैकिंग दृष्टिकोण सबसे खराब स्थिति में सभी क्रमपरिवर्तन उत्पन्न करता है लेकिन सामान्य तौर पर, सबसेट सम समस्या के लिए पुनरावर्ती दृष्टिकोण से बेहतर प्रदर्शन करता है। n धनात्मक पूर्णांकों का एक