අරාව කරකවන්න


දුෂ්කරතා මට්ටම මධ්යම
නිතර අසනු ලැබේ ඇමේසන් Apple ජංගම දුරකථන MakeMyTrip MAQ මයික්රොසොෆ්ට් ඔරකල් SAP SAP විද්‍යාගාර විෙප්රෝ
අරා කෑදරකම

කරකැවී අරාව අපි N ප්‍රමාණයේ අරාවක් ලබා දී ඇති ගැටළුවකි. අපට අරාව නිවැරදි දිශාවට කරකැවිය යුතුය. සෑම මූලද්‍රව්‍යයක්ම එක් ස්ථානයකින් දකුණට සහ අරාවෙහි අවසාන මූලද්‍රව්‍යය පළමු ස්ථානයට පැමිණේ. ඉතින්, අපි K අගයක් ලබා දී ඇති අතර, අපට K අරාව දකුණට හරවා අවසාන අරාව මුද්‍රණය කළ යුතුය. උදාහරණයක් ගෙන සියලු අංග දකුණට හරවා අරාව භ්‍රමණය කරන්නේ කෙසේදැයි බලමු.

අරාව කරකවන්න

ආදාන ආකෘතිය

ආදාන අරාවෙහි ඇති මූලද්‍රව්‍ය ගණන සහ ලබා දී ඇති අරාව මත නිවැරදි මාරුවීම් ගණන දැක්වෙන පූර්ණ සංඛ්‍යා අගයන් දෙකක් අඩංගු පළමු පේළිය.

N පූර්ණ සංඛ්‍යා අගයන් ඇති ආදාන අරාව අඩංගු දෙවන පේළිය.

නිමැවුම් ආකෘතිය

K දකුණු මාරුව සිදු කිරීමෙන් පසු අවසාන අරාව අඩංගු පළමු පේළිය.

අවහිරතා

  • 1 <= එන් <= 100000
  • -10 ^ 9 <= A [i] <= 10 ^ 9
  • 1 <= k <= 10 ^ 9
8 4
1 5 9 6 5 4 2 7
2 7 1 5 9 6 5 4

පැහැදිලි කිරීම

දී ඇති අරාවෙහි පළමුව, අපි සියලු අරාව ආපසු හරවන්නෙමු. එය අරාව මුල සිට ආපසු හරවන පසු (K% N-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 යනු ආදාන අරාවේ ප්‍රමාණයයි. මෙහිදී අපි ප්‍රතිලෝම ශ්‍රිතය භාවිතා කරන අතර එය සංඛ්‍යා ආපසු හැරවීමට රේඛීය කාලයක් ගතවේ. මෙහි උපරිම වශයෙන් අපි සියලු ආදාන අරාව ආපසු හරවන්නෙමු. ඉතින්, අපගේ උපරිම කාල සංකීර්ණතාව O (N) වනු ඇත.

අභ්‍යවකාශ සංකීර්ණතාව

ඕ (1) අපි මෙහි අමතර ඉඩක් භාවිතා නොකරන නිසා. අංකය ආපසු හැරවීමට O (1) අවකාශය ගන්නා ප්‍රතිලෝම ශ්‍රිතය අපි භාවිතා කරමු.

ආශ්රිත