मान लीजिए कि हमारे पास nums नामक एक अनसोल्ड ऐरे है, हमें इसे इन-प्लेस पर फिर से व्यवस्थित करना होगा जैसे कि nums[0] <=nums[1]>=nums[2] <=nums[3].... और इसी तरह।पी>
इसलिए, यदि इनपुट संख्या =[3,5,2,1,6,4] की तरह है, तो आउटपुट [3,5,1,6,2,4] होगा, कुछ अन्य उत्तर हो सकते हैं।पी>
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
n :=अंकों का आकार
-
इनिशियलाइज़ करने के लिए मैं :=0, जब i
-
अगर मैं सम है और nums[i]> nums[i+1] सच है या i विषम है और nums[i]> nums[i+1] गलत है, तो
-
स्वैप (अंक [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: void wiggleSort(vector<int<& nums) { int n = nums.size(); for(int i = 0; i < n - 1; i+=1){ if((i % 2 == 0) == ( nums[i] > nums[i + 1])){ swap(nums[i], nums[i + 1]); } } } }; main(){ vector<int< v = {3,5,2,1,6,4}; Solution ob; ob.wiggleSort(v); print_vector(v); }
इनपुट
{3,5,2,1,6,4}
आउटपुट
[3, 5, 1, 6, 2, 4, ]