इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो दी गई सरणी में विसंगतियों की संख्या ज्ञात करता है।
दी गई सरणी में एक संख्या एक विसंगति है यदि उस संख्या और अन्य सभी संख्याओं के बीच निरपेक्ष अंतर दी गई संख्या k से अधिक है। आइए एक उदाहरण देखते हैं।
इनपुट
arr = [3, 1, 5, 7] k = 1
आउटपुट
4
सभी संख्याओं का अन्य के साथ निरपेक्ष अंतर k से अधिक है।
एल्गोरिदम
- सरणी आरंभ करें।
- सरणी पर पुनरावृति करें।
- तत्व लें और सरणी पर पुनरावृति करें।
- दोनों संख्याओं के बीच निरपेक्ष अंतर ज्ञात करें।
- यदि कोई निरपेक्ष अंतर k से कम या बराबर नहीं है तो विसंगतियों की संख्या बढ़ाएं।
कार्यान्वयन
निम्नलिखित C++ में उपरोक्त एल्गोरिदम का कार्यान्वयन है:
#include <bits/stdc++.h>
using namespace std;
int getAnomaliesCount(int arr[], int n, int k) {
int count = 0;
for (int i = 0; i < n; i++) {
int j;
for (j = 0; j < n; j++) {
if (i != j && abs(arr[i] - arr[j]) <= k) {
break;
}
}
if (j == n) {
count++;
}
}
return count;
}
int main() {
int arr[] = {3, 1, 5, 7}, k = 1;
int n = 4;
cout << getAnomaliesCount(arr, n, k) << endl;
return 0;
}
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।
4