मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। A[i] ith छात्र के प्रोग्रामिंग कौशल का प्रतिनिधित्व करता है। ए में सभी तत्व अलग हैं। हम उन्हें टीमों में इस तरह विभाजित करना चाहते हैं कि -
-
कोई दो छात्र i और j, ऐसा नहीं |A[i] - A[j]| =1 एक ही टीम से संबंधित है
-
टीमों की संख्या न्यूनतम संभव है।
इसलिए, यदि इनपुट ए =[2, 3, 4, 99, 100] जैसा है, तो आउटपुट 2 होगा, क्योंकि समूह [2, 3, 4] और [99, 100]
हैं।कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
dem := 1 sort the array A for initialize i := 1, when i < size of A, update (increase i by 1), do: if A[i] - A[i - 1] is same as 1, then: dem := 2 return dem
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A) {
int dem = 1;
sort(A.begin(), A.end());
for (int i = 1; i < A.size(); i++)
if (A[i] - A[i - 1] == 1)
dem = 2;
return dem;
}
int main() {
vector<int> A = { 2, 3, 4, 99, 100 };
cout << solve(A) << endl;
} इनपुट
{ 2, 3, 4, 99, 100 } आउटपुट
2