Problem Statement could be found @ https://leetcode.com/problems/wiggle-subsequence/
Solution code
class Solution {
vector<int> smaller;
vector<int> larger;
public:
int wiggleMaxLength(vector<int>& nums) {
bool addToSmall ;
int size = nums.size();
for (int i=size-2; i>=0;i--){
if (nums[i] == nums[i+1]){
nums.erase(nums.begin() + (i+1));
}
}
if (nums.size() <= 2)
return nums.size();
int index = 0;
int count = 0;
while (index < (nums.size()-1)){
if (nums[index] < nums[index+1]){
count ++;
index = index+1;
while ( (nums[index] < nums[index+1]) && (index < (nums.size()-1))){
index++;
}
}else{
if (nums[index] > nums[index+1]){
count ++;
while ( (nums[index] > nums[index+1]) && (index < (nums.size()-1))){
index++;
}
}
}
}
return (count+1);
}
};
Solution code
class Solution {
vector<int> smaller;
vector<int> larger;
public:
int wiggleMaxLength(vector<int>& nums) {
bool addToSmall ;
int size = nums.size();
for (int i=size-2; i>=0;i--){
if (nums[i] == nums[i+1]){
nums.erase(nums.begin() + (i+1));
}
}
if (nums.size() <= 2)
return nums.size();
int index = 0;
int count = 0;
while (index < (nums.size()-1)){
if (nums[index] < nums[index+1]){
count ++;
index = index+1;
while ( (nums[index] < nums[index+1]) && (index < (nums.size()-1))){
index++;
}
}else{
if (nums[index] > nums[index+1]){
count ++;
while ( (nums[index] > nums[index+1]) && (index < (nums.size()-1))){
index++;
}
}
}
}
return (count+1);
}
};