ধরুন আমাদের কাছে পূর্ণসংখ্যা সংখ্যার একটি তালিকা আছে, আমাদের এইভাবে তালিকাটি সাজাতে হবে -
-
প্রথম উপাদান সর্বাধিক
-
দ্বিতীয় উপাদানটি সর্বনিম্ন
-
তৃতীয় উপাদান হল ২য় সর্বোচ্চ
-
চতুর্থ উপাদান হল 2য় নূন্যতম
ইত্যাদি।
সুতরাং, যদি ইনপুটটি [6,3,10,4] এর মত হয়, তাহলে আউটপুট হবে [10, 3, 6, 4]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি অ্যারে ret সংজ্ঞায়িত করুন
-
অ্যারের সংখ্যাগুলি সাজান
-
j :=সংখ্যার আকার - 1
-
i :=0
-
যখন i <=j, do −
-
ret-এর শেষে nums[j] সন্নিবেশ করান
-
(j 1 দ্বারা কমিয়ে দিন)
-
যদি i <=j, তাহলে −
-
ret-এর শেষে nums[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