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

C++ प्रोग्राम: नए तत्व डालने के बाद सरणी ढूंढें जहां किन्हीं दो तत्वों का अंतर सरणी में हो


मान लीजिए हमारे पास n अलग-अलग तत्वों वाला एक सरणी A है। एक सरणी B को अच्छा कहा जाता है यदि किन्हीं दो अलग-अलग तत्वों B[i] और B[j] के लिए, |B[i] - B[j]| B में कम से कम एक बार प्रकट होता है, और B में सभी तत्व अलग-अलग होंगे। हमें जांचना है कि क्या हम A में कई पूर्णांक जोड़कर इसे अधिकतम 300 आकार का अच्छा बना सकते हैं। यदि संभव हो तो नई सरणी वापस करें, अन्यथा -1 वापस करें।

उदाहरण के लिए, यदि इनपुट A = [4, 8, 12, 6] है, तो आउटपुट [8, 12, 6, 2, 4, 10] होगा, क्योंकि |4-2| = |6-4| = |8-6| = |10-8| = |12-10| = 2 सरणी में है, |6-2| = |8-4| = |10-6| = |12-8| = 4 सरणी में है, |8-2| = |10-4| = |12-6| = 6 सरणी में है, |10-2| = |12-4| = 8 सरणी में है, और |12-2| = 10 सरणी में है, तो सरणी अच्छी है। (अन्य उत्तर भी संभव हैं)

चरण

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

n := size of A t := 0 b := 0 for initialize i := 0, when i < n, update (increase i by 1), do:    a := A[i]    if a < 0, then:       t := 1    b := maximum of a and b if t is non-zero, then:    print -1 Otherwise    for initialize i := 0, when i <= b, update (increase i by 1), do:     print i

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

#include <bits/stdc++.h> using namespace std; void solve(vector<int> A) {    int n = A.size();    int t = 0;    int b = 0;    for (int i = 0; i < n; i++) {       int a = A[i];       if (a < 0)          t = 1;       b = max(a, b);    }    if (t)       cout << "-1";    else {       for (int i = 0; i <= b; i++)          cout << i << ", ";    } } int main() {    vector<int> A = { 4, 8, 12, 6 };    solve(A); }

इनपुट

{ 4, 8, 12, 6 }

आउटपुट

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
  1. C++ में दिए गए वृत्त के दो भागों के कोणों का सबसे छोटा अंतर ढूंढना C++ में दिए गए वृत्त के दो भागों के कोणों का सबसे छोटा अंतर ढूंढना

    इस समस्या में, हमें एक ऐरे दिया गया है जो वृत्त के टुकड़ों को उनके कोणों के आधार पर दर्शाता है। हमारा कार्य C++ में दिए गए वृत्त के दो भागों के कोणों का सबसे छोटा अंतर ढूंढने के लिए एक प्रोग्राम बनाना है। समस्या विवरण हमें ऐरे में वृत्त के सभी टुकड़ों के कोण दिए गए हैं। हमें टुकड़ों को इस तरह जोड़न

  1. C++ में सरणी के एलिमेंट्स का गुणनफल C++ में सरणी के एलिमेंट्स का गुणनफल

    पूर्णांक एलिमेंट्स की एक सरणी दी गई है और कार्य सरणी के एलिमेंट्स को गुणा करना और प्रदर्शित करना है। उदाहरण इनपुट-: arr[]={1,2,3,4,5,6,7} आउटपुट-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 इनपुट-: arr[]={3, 4,6, 2, 7, 8, 4} आउटपुट-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 नीचे दिए गए प्रोग्राम में उपयोग किया गया द

  1. - C++ में सरणी का सबसे बड़ा एलिमेंट खोजने का प्रोग्राम

    एक सरणी में कई एलिमेंट्स होते हैं और सरणी में सबसे बड़ा एलिमेंट वह होता है जो अन्य एलिमेंट्स से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा एलिमेंट है और यह इंडेक्स 2 पर है। सरणी का सबसे बड़ा एलिमेंट खोजने का एक प्रोग्राम निम्नलिखित है। उदाहरण #include <iostream>