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

C++ में दी गई सरणी बनाने के लिए प्रत्यय वृद्धि/कमी ऑपरेशनों की गिनती


हमें एक लक्ष्य सरणी arr[] दी गई है जिसमें धनात्मक पूर्णांक हैं। लक्ष्य प्रारंभिक सरणी का उपयोग करके लक्ष्य सरणी arr[] का निर्माण करना है जिसमें सभी 0 हैं। दिए गए खाली सरणी पर लागू किए जा सकने वाले ऑपरेशन प्रत्यय वृद्धि/कमी ऑपरेशन होंगे।

यदि हम कोई सूचकांक चुनते हैं मान लीजिए i, तो प्रत्यय वृद्धि ऑपरेशन के मामले में हम सूचकांक i से अंतिम सूचकांक तक सभी तत्वों में 1 जोड़ देंगे।

प्रत्यय कमी ऑपरेशन के मामले में हम सूचकांक i से अंतिम सूचकांक तक सभी तत्वों से 1 घटा देंगे।

आइए उदाहरणों से समझते हैं

इनपुट - arr[]= { 1,2,3 }

आउटपुट - दी गई सरणी बनाने के लिए प्रत्यय वृद्धि/कमी ऑपरेशनों की गिनती - 3

व्याख्या

{ 0, 0, 0 } से शुरू 
सूचकांक 0 चुनें, प्रत्यय वृद्धि लागू करें { 1, 1, 1 } 
सूचकांक 1 चुनें, प्रत्यय वृद्धि लागू करें { 1, 2, 2 } 
सूचकांक 2 चुनें, प्रत्यय वृद्धि लागू करें { 1, 2, 3 } 
कुल ऑपरेशन = 3

इनपुट - arr[]= { 1, 4, 5, 3 }

आउटपुट - दी गई सरणी बनाने के लिए प्रत्यय वृद्धि/कमी ऑपरेशनों की गिनती - 7

व्याख्या

{ 0, 0, 0, 0 } से शुरू 
सूचकांक 0 चुनें, प्रत्यय वृद्धि लागू करें { 1, 1, 1, 1 } 
सूचकांक 1 चुनें, प्रत्यय वृद्धि लागू करें { 1, 2, 2, 2 } 
सूचकांक 1 चुनें, प्रत्यय वृद्धि लागू करें { 1, 3, 3, 3 } 
सूचकांक 1 चुनें, प्रत्यय वृद्धि लागू करें { 1, 4, 4, 4 } 
सूचकांक 2 चुनें, प्रत्यय वृद्धि लागू करें { 1, 4, 5, 5 } 
सूचकांक 3 चुनें, प्रत्यय कमी लागू करें { 1, 4, 5, 4 } 
सूचकांक 3 चुनें, प्रत्यय कमी लागू करें { 1, 4, 5, 3 } 
कुल ऑपरेशन = 7

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण

यदि हम प्रारंभिक सरणी को B[] के रूप में लेते हैं। B[0] को arr[0] के बराबर बनाने के लिए। हमें arr[0] संख्या में प्रत्यय वृद्धि ऑपरेशन की आवश्यकता होगी। इसके बाद सभी B[0]=B[1]....=B[n-1]=arr[0] बराबर होंगे।

B[1] को arr[1] के बराबर बनाने के लिए, हमें | arr[1]-arr[0] | संख्या में ऑपरेशन की आवश्यकता होगी। (या तो वृद्धि या कमी)।

तो B[i] को arr[i] के बराबर बनाने के लिए हमें | arr[i]- arr[i-1] | संख्या में ऑपरेशन की आवश्यकता होगी।

ऑपरेशनों की कुल गिनती होगी | arr[0] | + | arr[1]-arr[0] | + …. + | arr[n-1]-arr[n-2] |।

  • लक्ष्य सरणी को arr[] के रूप में लें।
  • फ़ंक्शन incr_decr_op(int arr[], int size) सरणी और उसकी लंबाई लेता है और दी गई सरणी बनाने के लिए प्रत्यय वृद्धि/कमी ऑपरेशनों की गिनती वापस करता है
  • प्रारंभिक गिनती 0 लें।
  • फॉर लूप का उपयोग करके सरणी arr[] को पार करें
  • सूचकांक 0 के लिए arr[i] को गिनती में जोड़ें।
  • अन्य सूचकांकों के लिए abs( arr[i]-arr[i-1] ) को गिनती में जोड़ें।
  • फॉर लूप के अंत में गिनती को परिणाम के रूप में वापस करें।

उदाहरण

#include <bits/stdc++.h> 
using namespace std; 

int incr_decr_op(int arr[], int size){ 
    int count = 0; 
    for (int i = 0; i < size; i++){ 
        if (i > 0){ 
            count += abs(arr[i] - arr[i - 1]); 
        } 
        else{ 
            count = count + abs(arr[i]); 
        } 
    } 
    return count; 
} 

int main(){ 
    int arr[] = { 3, 3, 1, 2, 2 }; 
    int size = sizeof(arr) / sizeof(arr[0]); 
    cout<<"Count of suffix increment/decrement operations to construct a given array are: "<<incr_decr_op(arr, size) << endl; 
}

आउटपुट

Count of suffix increment/decrement operations to construct a given array are: 6
  1. - C++ में सरणी में दो दिए गए तत्वों के बीच के तत्वों की संख्या गिनें

    हमें एक सरणी दी गई है जिसमें पूर्णांक तत्व हैं और दो संख्याएँ start और end हैं और कार्य सरणी में start और end के बीच मौजूद तत्वों की संख्या की गणना करना है। सरणी एक प्रकार की डेटा संरचना है जो एक ही प्रकार के तत्वों का एक निश्चित आकार का अनुक्रमिक संग्रह संग्रहीत कर सकती है। एक सरणी का उपयोग डेटा

  1. - C++ में सरणी में विशिष्ट तत्वों की गिनती करें

    हमें किसी भी आकार की एक असॉर्टेड सरणी दी गई है जिसमें दोहराव वाले तत्व हैं और कार्य सरणी में विशिष्ट तत्वों की संख्या की गणना करना है। सरणी एक प्रकार की डेटा संरचना है जो एक ही प्रकार के तत्वों का एक निश्चित आकार का अनुक्रमिक संग्रह संग्रहीत कर सकती है। एक सरणी का उपयोग डेटा के संग्रह को संग्रहीत

  1. - C++ में दिए गए ऐरे में लगातार तत्वों के GCD से ऐरे बनाएं

    मान लें हमारे पास n तत्वों का एक ऐरे A[] है। हमें एक और ऐरे B[] ढूंढना है, जिसका आकार n+1 हो, जैसे कि B[i] और B[i+1] का GCD A[i] हो। यदि कई समाधान हैं, तो उनमें से एक प्रिंट करें जिसका ऐरे योग न्यूनतम हो। इसलिए यदि A = [1, 2, 3], तो आउटपुट [1, 2, 6, 3] होगा। = A[i+1], A[i+2] का LCM। चूंकि हम न्यून