Advertisement
Kali_prasad

next greater element 3

Mar 18th, 2022
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.32 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int nextGreaterElement(int n) {
  4.         int temp=n;
  5.         int count=0;
  6.         while(temp)
  7.         {
  8.             temp/=10;
  9.             count++;
  10.         }
  11.         temp=n;
  12.         vector<int> v(count);
  13.         for(int i=count-1;i>=0;i--)
  14.            { v[i]+=temp%10;
  15.                temp/=10;
  16.          
  17.            }
  18.         unsigned int ans=0;
  19.         int j,k;
  20.         int flag=0;
  21.         for(int i=count-2;i>=0;i--){
  22.            
  23.             if(v[i+1]-v[i]>0){
  24.                 j=i;
  25.                 flag=1;
  26.                 break;
  27.                
  28.             }
  29.         }
  30.        
  31.         if(flag==1)
  32.         {
  33.             for(int i=count-1;i>j;i--)
  34.             {
  35.                 if(v[j]<v[i])
  36.                 {
  37.                     k=i;
  38.                     break;
  39.                 }
  40.                
  41.             }
  42.              int temp =v[j];
  43.                 v[j]=v[k];
  44.                 v[k]=temp;
  45.                 for(int i=0;i<=j;i++)
  46.                 {
  47.                     ans=ans*10+(v[i]);
  48.                 }
  49.                 for(int i=count-1;i>j;i--)
  50.                 {
  51.                     ans=ans*10+(v[i]);
  52.                 }
  53.             return ans;
  54.         }
  55.         else
  56.         {
  57.             return -1;
  58.         }
  59.            
  60.        
  61.    
  62.        
  63.     }
  64. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement