Advertisement
nikunjsoni

845

Apr 18th, 2021
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.64 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int longestMountain(vector<int>& arr) {
  4.         int ans=0, i=1;
  5.        
  6.         while(i<arr.size()){
  7.             // Sideward move.
  8.             while(i<arr.size() && arr[i] == arr[i-1])
  9.                 i++;
  10.            
  11.             // Upward move.
  12.             int up = 0;
  13.             while(i<arr.size() && arr[i] > arr[i-1])
  14.                 up++,i++;
  15.            
  16.             // Downward move.
  17.             int down = 0;
  18.             while(i<arr.size() && arr[i] < arr[i-1])
  19.                 down++, i++;
  20.            
  21.             if(up && down) ans = max(ans, up+down+1);
  22.         }
  23.         return ans;
  24.     }
  25. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement