【发布时间】:2014-10-11 19:38:18
【问题描述】:
我正在查看这个编程任务,发现了以下问题。 问题说明:给出了专业人员 start_time 和 end_time 的列表。给出了任务的 end_tasks 列表。找出每个专业人员在其时间范围内可以完成的任务数量。
输入: 请求:[4,2,5,3,1],开始时间:[2,5],结束时间:[5,6]。
输出: 4 1
解释:由于Professional_1的time_frame 2到5,他可以执行四项任务(4,2,5,3),Professional_2的time frame 5到6,他只能完成一项任务(即 5)
程序代码:
#include <stdio.h>
void count_requests(int *requests, int requests_length, int *pro_start, int pro_start_length, int *pro_end, int pro_end_length) {
int i,j,req,start,end,task;
for(i=0;i<pro_start_length;i++){
start=*(pro_start+i);
end=*(pro_end+i);
task=0;
for(j=0;j<requests_length;j++){
req=*(requests+j);
if(req>=start && req<=end){
task=task+1;
}
}
printf("%d\n",task);
}
}
当输入的数量级为 50000 时,此处的嵌套 for 循环需要 30 多秒才能运行。我在这里缺少什么?
【问题讨论】:
标签: c algorithm data-structures