siki老师你好多算法的条件都不充分,像我现在看的static void Main(string[] args) { int[] s = { 0, 1, 3, 0,...
追评
siki老师你好多算法的条件都不充分,像我现在看的
static void Main(string[] args)
{
int[] s = { 0, 1, 3, 0, 5, 3, 5, 6, 8, 8, 2, 12,5 };
int[] f = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,15 };
List list = ActivitySelect(1,12,0,24,s,f);
foreach (var item in list)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
public static List ActivitySelect(int startActNum,int endActNum,int startTime,int endTime,int[] s,int[] f) {
if (startActNum > endActNum || startTime > endTime)
{
return new List();
}
int tempNum = 0;
for (int i = startActNum; i <= endActNum; i++)
{
if (s[i] >= startTime && f[i] <= endTime)
{
//直接找到最近 符合的
tempNum = i;
break;
}
}
if (tempNum != 0)
{
List list = ActivitySelect(tempNum + 1, endActNum, f[tempNum], endTime, s, f);
list.Add(tempNum);
return list;
}
return new List();
我自己在最后面添加多了一个活动
如果不判断tempNum为零会出错
追评