अ‍ॅरे फिरवा  


अडचण पातळी मध्यम
वारंवार विचारले ऍमेझॉन सफरचंद मेकमायट्रिप एमक्यू मायक्रोसॉफ्ट ओरॅकल सॅप एसएपी लॅब विप्रो
अरे लोभी

फिरवा अॅरे ही एक समस्या आहे ज्यामधे आम्ही एन एन आकाराचा अ‍ॅरे दिला आहे. आपल्याला अ‍ॅरे योग्य दिशेने फिरवावा लागेल. अ‍ॅरेचा एक घटक उजवीकडे आणि शेवटचा घटक पहिल्या स्थानावर येतो. तर आपण के व्हॅल्यू दिली आहे आणि अ‍ॅरे के वेळा उजवीकडे वळवा आणि नंतर अंतिम अ‍ॅरे प्रिंट करा. एक उदाहरण घेऊन सर्व घटक उजवीकडे वळवून अ‍ॅरे कसे फिरवायचे ते पाहू.

अ‍ॅरे फिरवापिन

इनपुट स्वरूप

इनपुट अ‍ॅरे मधील घटकांची संख्या आणि उजवीकडील पाळीची संख्या दर्शविणार्‍या अ‍ॅरेवर निष्पादित करणारी दोन पूर्णांक एन आणि के दोन असलेली पहिली ओळ.

इनपुट अ‍ॅरे असलेली दुसरी ओळ ज्यात एन पूर्णांक मूल्य आहे.

अंतिम स्वरूप

के उजवी शिफ्ट केल्यावर अंतिम अ‍ॅरे असलेली पहिली ओळ.

मर्यादा

  • 1 <= एन <= 100000
  • -10. 9 <= ए [i] <= 10 ^ 9
  • 1 <= के <= 10 ^ 9
8 4
1 5 9 6 5 4 2 7
2 7 1 5 9 6 5 4

स्पष्टीकरण

प्रथम दिलेल्या अ‍ॅरेमध्ये आपण सर्व अ‍ॅरे उलट करतो. हे सुरुवातीस अ‍ॅरे उलटते नंतर (के% एन -1). यानंतर, आम्ही शेवटचे उर्वरित घटक अदलाबदल केले आणि अंतिम अ‍ॅरे मिळविले जे के उजव्या शिफ्ट नंतर येईल.

अ‍ॅरे फिरवापिन

फिरवा अ‍ॅरेसाठी अल्गोरिदम

Step:1 Reverse all the array.
Step:2 Reverse first K%N elements.
Step:3 Reverse last N-K%N elements.
Step:4 Print the final array.

फिरविणे अ‍ॅरेची अंमलबजावणी

/*C++ Implementation of Rotate Array.*/ 
#include<bits/stdc++.h> 
using namespace std; 
int main() 
{ 
    /*input values.*/ 
    int n,k; 
    cin>>n>>k;
    vector<int> a;
    for(int i=0;i<n;i++)
    {
        int x;
        cin>>x;
        a.push_back(x);
    }
    reverse(a.begin(),a.end());
    reverse(a.begin(),a.begin()+k%n);
    reverse(a.begin()+k%n,a.end());
    for(int i=0;i<n;i++)
    {
        cout<<a[i]<<" ";
    }
    return 0; 
}
13 17
1 6 24 65 13 -234 0 12 54 3 -1 6 3
3 -1 6 3 1 6 24 65 13 -234 0 12 54

वेळ कॉम्प्लेक्सिटी

ओ (एन) जेथे एन इनपुट अ‍ॅरेचा आकार आहे. येथे आम्ही रिव्हर्स फंक्शन वापरुया जे नंबर रिव्हर्स करण्यास रेषीय वेळ घेते. येथे जास्तीत जास्त आम्ही सर्व इनपुट अ‍ॅरे उलट करतो. तर, आमची जास्तीत जास्त वेळ जटिलता ओ (एन) असेल.

हे सुद्धा पहा
प्राधान्य रांग

स्पेस कॉम्प्लेक्सिटी

ओ (1) कारण आम्ही येथे कोणतीही अतिरिक्त जागा वापरत नाही. आम्ही संख्या उलट करण्यासाठी ओ (1) जागा घेणारे रिव्हर्स फंक्शन वापरु.

संदर्भ