int cmp(const void* a, const void* b){ return *(int*)a - *(int*)b; } int findLHS(int* nums, int numsSize){ qsort(nums,numsSize,sizeof(int),cmp); int i,max=0,num=1,pre=0; for (i=1; i<numsSize; i++) { if (nums[i] > nums[i-1]) { if (pre && num+pre > max) max=num+pre; pre = (nums[i] - nums[i-1] == 1)? num: 0; num=0; } if (i == numsSize-1 && pre && num+pre+1 > max) max = num+pre+1; num++; } return max; }
原文:https://www.cnblogs.com/ganxiang/p/13712847.html