- set 会自动排序。 
 - 使用ans = 1, q =1  以及 比一个删除一个得方式,进行判断最长子序列。 
 - 其余看注释。 
 
 class Solution {
public:
    /**
     * max increasing subsequence
     * @param arr int整型vector the array
     * @return int整型
     */
    int MLS(vector<int>& arr) {
        // write code here
        if(!arr.size()){
            return 0;
        }
        set<int> s;//默认有序
        for(auto x: arr){
            s.insert(x);
        }
        int ans =1, q = 1, pre = *s.begin();// q相当与很多队列得起始点得计数
        s.erase(pre);//set 删除元素
        while(s.size()){
            int now = *s.begin();
            s.erase(now);//删除,为下一次比较做预备
            if(pre == now -1){//连续
                if(ans<++q) ans = q;// 先加加,然后直接赋值即可。
            }else q = 1;//新的队列
            pre = now;//这样就可以对应pre是那个删掉的元素
        }
        return ans;
    }
};