Longest Mountain in Array LeetCode solution in C++
1class Solution {2public:3int longestMountain(vector<int> &arr) {4vector<int> v;5for (int i = 0; i < arr.size() - 1; i++) {6if (arr[i + 1] > arr[i])7v.push_back(1);8else if (arr[i + 1] < arr[i])9v.push_back(-1);10else11v.push_back(0);12}13int i = 0;14int ans = 0;15while (i < v.size()) {16int c1 = 0, c2 = 0;17while (i < v.size() and v[i] == 1) {18c1++;19i++;20}21while (i < v.size() and v[i] == -1) {22c2++;23i++;24}25while (i < v.size() and v[i] == 0) {26i++;27}28if (c1 != 0 and c2 != 0) {29ans = max(ans, c1 + c2 + 1);30}31}32return ans;33}34};