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

सी ++ प्रोग्राम नए तत्वों को सम्मिलित करने के बाद सरणी खोजने के लिए जहां कोई भी दो तत्व अंतर सरणी में है

मान लीजिए कि हमारे पास n अलग-अलग तत्वों के साथ एक सरणी A है। एक सरणी B को अच्छा कहा जाता है यदि किन्हीं दो अलग-अलग तत्वों B[i] और B[j] के लिए |B[i] - B[j]| कम से कम एक बार बी में प्रकट होता है, और बी में सभी तत्व अलग होंगे। हमें यह जांचना होगा कि क्या हम ए में कई पूर्णांक जोड़ सकते हैं ताकि यह आकार में अधिक से अधिक 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++ में दिए गए वृत्त के दो भागों के कोणों का सबसे छोटा अंतर खोजने के लिए एक कार्यक्रम बनाना है । समस्या का विवरण - हमें सरणी में वृत्त के सभी टुकड़ों के कोण दिए गए हैं। हमें टुकड़े को

  1. सरणी तत्वों के गुणन के लिए C++ प्रोग्राम

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

  1. सी ++ प्रोग्राम एक ऐरे का सबसे बड़ा तत्व खोजने के लिए

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