मान लीजिए कि हमारे पास पूर्णांकों की एक सूची है जिसे अंक कहते हैं। अब मान लीजिए एक ऑपरेशन जहां हम सूची में पूर्णांकों के कुछ उपसमुच्चय का चयन करते हैं और उन सभी को एक से बढ़ाते हैं। सूची में सभी मानों को एक दूसरे के बराबर बनाने के लिए हमें आवश्यक संचालन की न्यूनतम संख्या ज्ञात करनी होगी।
इसलिए, अगर इनपुट [1,3,5] जैसा है, तो आउटपुट 4 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
यदि अंकों का आकार 1 के समान है, तो -
-
वापसी 0
-
-
रिट:=0
-
मैक्सवैल :=-इन्फ
-
minVal :=inf
-
इनिशियलाइज़ i :=0 के लिए, जब i <अंकों का आकार, अपडेट करें (i से 1 बढ़ाएँ), करें -
-
maxVal :=अधिकतम अधिकतम वैल और अंक[i]
-
minVal :=न्यूनतम minVal और nums[i]
-
-
वापसी maxVal - minVal
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
#include <bits/stdc++.h> using namespace std; class Solution { public: int solve(vector<int> &nums) { if (nums.size() == 1) return 0; int ret = 0; int maxVal = INT_MIN; int minVal = INT_MAX; for (int i = 0; i < nums.size(); i++) { maxVal = max(maxVal, nums[i]); minVal = min(minVal, nums[i]); } return maxVal - minVal; } }; main() { Solution ob; vector<int> v = {1,3,5}; cout << (ob.solve(v)); }
इनपुट
{1,3,5}
आउटपुट
4