मान लीजिए कि हमारे पास पूर्णांकों की एक सूची है, हमें सूची को इस तरह से क्रमबद्ध करना होगा -
-
पहला तत्व अधिकतम है
-
दूसरा तत्व न्यूनतम है
-
तीसरा तत्व दूसरा अधिकतम है
-
चौथा तत्व दूसरा न्यूनतम है
और इसी तरह।
इसलिए, यदि इनपुट [6,3,10,4] जैसा है, तो आउटपुट [10, 3, 6, 4]
होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
एक सरणी रिट परिभाषित करें
-
सरणी संख्याओं को क्रमबद्ध करें
-
j :=अंकों का आकार - 1
-
मैं :=0
-
जबकि मैं <=j, करता हूं -
-
रिट के अंत में nums[j] डालें
-
(j को 1 से घटाएं)
-
अगर मैं <=j, तो -
-
रिट के अंत में अंक [i] डालें
-
(i 1 से बढ़ाएँ)
-
-
-
वापसी रिट
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
cout << "[";
for(int i = 0; i<v.size(); i++){
cout << v[i] << ", ";
}
cout << "]"<<endl;
}
class Solution {
public:
vector<int> solve(vector<int> & nums) {
vector<int> ret;
sort(nums.begin(), nums.end());
int j = nums.size() - 1;
int i = 0;
while (i <= j) {
ret.push_back(nums[j]);
j--;
if (i <= j) {
ret.push_back(nums[i]);
i++;
}
}
return ret;
}
};
main() {
Solution ob;
vector<int> v = {6,3,10,4};
print_vector(ob.solve(v));
} इनपुट
{6,3,10,4} आउटपुट
10, 3, 6, 4