参考<Intruction to algorithm - a creative approach> 6.11
1 int lengthOfLIS(vector & nums) 2 { 3 vector BIS(nums.size() + 1, INT_MAX); 4 int len = 0; 5 6 for (int i = 0; i < nums.size(); i++) 7 { 8 for (int k = BIS.size() - 1; k >= 0; k--) 9 {10 if ((nums[i] > BIS[k]) && (nums[i] < BIS[k + 1]))11 {12 BIS[k + 1] = nums[i];13 }14 }15 if (BIS[0] > nums[i])16 {17 BIS[0] = nums[i];18 }19 }20 21 for (len = 0; len < BIS.size(); len++)22 if (BIS[len] >= INT_MAX)23 break;24 25 return len;26 }