Saturday, September 10, 2016

Solution to 376. Wiggle Subsequence

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);
    }
};