- 论坛徽章:
- 0
|
10可用积分
1.一维空间,有2E64(2的64次方)个位置。
2.有100个不同的元素element[100],分布在上述的一维空间中。每个元素都可能有多个位置。比如element[0]的位置可能有:
89,200,24445,233481,87659213,...已知这个列表已经按顺序排列好了。
3.求一个位置,这个位置以后的连续1000个位置中,不同元素的个数最多。
typedef long long Position;//C99 promise long long to be at least 64 bit
typedef struct{
Position pos;
Position_List *Next;
}Position_List;
//怎样设计此函数,以获得最快速度?
//参数:total_element是总共元素的个数,比如上面说的100。
//参数:element是一个指针,指向这样的数组:
//数组共有total_element个元素;
//每个元素都是一个链表的头节点。这个链表上记录了相应element的所有位置。
//返回:求一个位置,在此位置之后field个位置中,含有最大数量的不同元素。
Position biggest_density(int total_element,Position_List element[],long long field);
//element定义:
Position_List element[100]; |
|