找到具有最高总计数的区间?

时间:2014-09-26 05:35:41

标签: genetic-algorithm

给定一组条目,每个条目包含时间索引和int计数值, 即 课程录入 {     时间:INT     数:INT }

编写一个函数,它将给出具有最高计数的时间间隔,

即 如果我们有条目

100, 2
100, 1
110, 10
200, 4
1000, 3
1200, 8

我们运行了类似

的内容
int highestInterval(int interval_range)
highestInterval( 50 )

它将返回100,因为在100-150中,你有2,1和10的数。

我设法为它获得了一个O(n ^ 2)解决方案,但我认为这是一个更好的解决方案。我认为它可能与间隔桶的一些预处理有关,但我无法弄清楚解决方案。

1 个答案:

答案 0 :(得分:0)

似乎你已经使用了两个for循环,所以这只是一个改进的问题。

这是一个可能的解决方案:

CODE:

raw_data=[100,2;
100,1;
110,10;
200,4;
1000,3;
1200,8];
[max_val,indx]=max(cell2mat(arrayfun(@(A) sum(raw_data(abs(raw_data(A,1)-raw_data(:,1))<50,2)),1:size(raw_data,1),'UniformOutput',false)));
raw_data(indx,1)

输出:

ans =

   100