int cmp(int *a, int *b){
if(*a < *b){
return -1;
}else if(*a > *b){
return 1;
}
return 0;
}
typedef struct nd{
int val;
int cnt;
} Node;
#define LEN 0xfffff
int findLHS(int* arr, int len){
int i;
int tmp, max = 0;
Node table[LEN];
int index = 0;
if(!arr || !len) return 0;
qsort(arr, len, sizeof(int), cmp);
table[0].val = arr[0];
table[0].cnt = 1;
for(i=1; i<len; i++){
if(arr[i] == table[index].val){
table[index].cnt++;
}else{
index++;
table[index].val = arr[i];
table[index].cnt = 1;
}
}
for(i=0; i<index; i++){
if(table[i+1].val - table[i].val ==1 && table[i+1].cnt + table[i].cnt > max)
max = table[i+1].cnt + table[i].cnt;
}
return max;
}
leetcode-594. 最长和谐子序列-C语言
最新推荐文章于 2021-11-20 17:39:31 发布