int lengthOfLIS1(vector<int>& nums) {
if(nums.size()==0)return 0;
vector<int> res;
for(int i=0;i<nums.size();++i){
auto it=lower_bound(res.begin(),res.end(),nums[i]);
if(it==res.end())
res.push_back(nums[i]);//insert new element
else
*it=nums[i];//update some element at res
}
return res.size();
}