דרייען עריי


שוועריקייט לעוועל מיטל
אָפט געבעטן אין אַמאַזאָן עפּל MakeMyTrip מאַק מייקראָסאָפֿט אָראַקל זאַפט SAP לאַבס וויפּראָ
מענגע זשעדנע

דרייען מענגע איז אַ פּראָבלעם אין וואָס מיר האָבן געגעבן אַ מענגע פון ​​גרייס N. מיר האָבן צו דרייען די מענגע אין די רעכט ריכטונג. יעדער עלעמענט יבעררוק דורך איין שטעלע רעכט און לעצט עלעמענט פון דער מענגע קומען צו דער ערשטער שטעלע. אַזוי, מיר האָבן געגעבן אַ ווערט ק און מיר מוזן יבעררוק די מענגע ק מאָל רעכט און דאַן דרוקן די לעצט מענגע. זאל ס זען ווי צו דרייען די מענגע דורך שיפטינג אַלע עלעמענטן צו די רעכט דורך אַ ביישפּיל.

דרייען עריי

ינפּוט פֿאָרמאַט

ערשטער שורה כּולל צוויי ינטאַדזשער וואַלועס N און K וואָס באַצייכענען די נומער פון עלעמענטן אין די ינפּוט מענגע און די נומער פון רעכט שיפץ אויף אַ געגעבן מענגע.

די רגע שורה מיט אַן ינפּוט מענגע מיט N ינטעגער וואַלועס.

רעזולטאַט פֿאָרמאַט

דער ערשטער שורה מיט די לעצט מענגע נאָך דורכפירן ק רעכט יבעררוק.

קאַנסטריינץ

  • 1 <= N <= 100000
  • -10 ^ 9 <= א [איך] <= 10 ^ 9
  • 1 <= ק <= 10 ^ 9
8 4
1 5 9 6 5 4 2 7
2 7 1 5 9 6 5 4

דערקלערונג

אין דער געגעבן מענגע ערשטער, מיר פאַרקערט אַלע די מענגע. נאָך דעם ריווערסאַז די מענגע פֿון אָנהייב צו (ק% נ -1). נאָך דעם, מיר ויסבייַטן די לעצטע רוען עלעמענטן און גאַט די לעצט מענגע וואָס קומט נאָך K רעכט יבעררוק.

דרייען עריי

אַלגערידאַם פֿאַר דרייען אַרייז

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

צייט קאַמפּלעקסיטי

אָ (N) וווּ N איז די גרייס פון דעם אַרייַנשרייַב מענגע. דאָ מיר נוצן די פאַרקערט פונקציע וואָס נעמט לינעאַר צייט צו פאַרקערט די נומער. דאָ מאַקסימום מיר פאַרקערט אַלע די ינפּוט מענגע. אַזוי, אונדזער מאַקסימום צייט קאַמפּלעקסיטי וועט זיין O (N).

ספעיס קאַמפּלעקסיטי

אָ (1) ווייַל מיר טאָן ניט נוצן קיין עקסטרע פּלאַץ דאָ. מיר נוצן די פאַרקערט פונקציע וואָס נעמט O (1) פּלאַץ צו פאַרקערט די נומער.

רעפֿערענצן