मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। एक घेरे पर n सैनिक खड़े हैं। Ith सैनिक के लिए, ऊंचाई A[i] है। ऐसे दो आसन्न सैनिकों से एक टोही इकाई बनाई जा सकती है, जिनकी ऊंचाई का अंतर न्यूनतम है। तो उनमें से प्रत्येक दूसरे के साथ कम ध्यान देने योग्य होगा। हमें सैनिकों की जोड़ी के सूचकांकों को खोजना होगा जो एक टोही इकाई बना सकते हैं।
इसलिए, यदि इनपुट A =[10, 12, 13, 15, 10] जैसा है, तो आउटपुट (5, 1) होगा।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
n := size of A D := |A[0] - A[n - 1]| H := n for initialize i := 1, when i < n, update (increase i by 1), do: if D > |A[i] - A[i - 1]|, then: D := |A[i] - A[i - 1]| H := i print H and (H mod n)
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; void solve(vector<int> A) { int n = A.size(); int D = abs(A[0] - A[n - 1]); int H = n; for (int i = 1; i < n; i++) { if (D > abs(A[i] - A[i - 1])) { D = abs(A[i] - A[i - 1]); H = i; } } cout << H << ", " << (H % n) + 1; } int main() { vector<int> A = { 10, 12, 13, 15, 10 }; solve(A); }
इनपुट
{ 10, 12, 13, 15, 10 }
आउटपुट
5, 1