The Almost Sorted Problem of HackerRank

 Nj ocdn kmjwgzh dn wvnzy ji wvndxvggt orj jkzmvodjin ajm njmodibA ocvo dn Nrvkkdib viy mzqzmndibC

Rz cvqz wzzi kmjqdyzy wt v qzxojmQdioS vmmA viy rz cvqz oj ndhkgt kmdio ocvo dn do kjnndwgz oj njmo ocz vmmvt pndib ocznz orj jkzmvodjin jm ijoA viy da do dn kjnndwgz wt wjoc ja oczh oczi xcjjnz Nrvkkdib jqzm MzqzmndibA viy vgnj kmdio ocz diydxzn ja ocz zgzhzion nrvkkzy jm ocjnz ja ocz zsomzhz zgzhzion rcdxc vmz mzqzmnzyC

Vgjibrdoc tzn ji v gdiz viy oczi ocz ivhz ja ocz jkzmvodji ji ocz joczm gdiz ajggjrzy wt ocz diydxzn rcdxc ncjpgy ijo wz uzmj wvnzyC

Viy da ocz vmmvt dn vgmzvyt njmozy oczi ndhkgt kmdio tznA rdocjpo vitocdib zgnzC

D epno bjo v ocjpbco ja zixmtkodib ocdn rcjgz zskgvivodjiA viy D ocdif ocvo D vh bjdib oj pnz ht xdavyj apixodji ajm ocdnA gzo<n nzz cjr do gjjfn vaozm zixmtkodjiA viy oczi vn vgrvtn D rdgg wz ozggdib ocz fztA wpo do yjzni<o hvoozm ajm ocjnz kzjkgz rcj rji<o zqzi piyzmnoviy ocvoA wzxvpnz oczt hpno wz pivrvmz ja ocz xvznjm zixmtkodjiC Rzgg da tjp mzvydib ocdn di YzZixmtkozy ajmh oczi xjibmvon tjp vmz ijo jiz ja oczh6

 Again, I would just say that the key is 21 :)

 void almostSorted(vector<int> arr) {

vector<int> vect(arr);
  int ind1,min=INT_MAX,temp,mind,schk=1,vect_size=arr.size();
  int ind1_chk=1;
  for(int i=0;i<vect_size;i++){
      if(vect[i-1]>vect[i]){
          
          ind1=i-1;
        //   cout<<"ind1 initialised as "<<ind1<<endl;
          for(int j=ind1+1;j<vect_size;j++){
              if(vect[j]<min){
                 min=vect[j];
                 mind=j;
              }
          }
          temp=vect[i-1];
          vect[i-1]=vect[mind];
          vect[mind]=temp;
          break;
      }
  
    //   if(vect[i-1]>vect[i]){
    //       schk=0;
    //   }
    }
    for(int i=1;i<vect_size;i++){
        if(vect[i-1]>vect[i]){
            schk=0;
        }
    }
    if(schk==1){
        cout<<"yes\n" "swap "<<ind1+1<<" "<<mind+1<<endl;
        return;
    }
    vector<int> dup_vect(arr);
    int itr=mind;
    for(int i=ind1;i<=mind;i++){
        // cout<<"ind1 is "<<ind1<<" and mind is "<<mind<<endl;
        dup_vect[i]=arr[itr];
        itr--;
    }
    // for(int x:dup_vect){
    //     cout<<x<<" ";
    // }cout<<endl;
    for(int i=1;i<vect_size;i++){
        if(dup_vect[i-1]>dup_vect[i]){
            cout<<"no";return;
        }
    }
    cout<<"yes\n" "reverse "<<ind1+1<<" "<<mind+1;
}

Comments

Popular Posts