我试图弄清楚为什么以下递归方法会出现堆栈溢出错误。该方法用于检查ArrayList
类型床的可用性。它需要numOfBeds
连续/一起找到可用的,然后返回第一个的位置,这样我就可以从列表中的那个位置开始连续预订指定的数量。给出的参数:pos
= 起始位置,numOfBeds
= 要查找的数量,bedList
= 一个ArrayList
。递归调用的起始点位于发现不可用床位之后。提前致谢!
public int multiEmptyBeds(int pos, int numOfBeds, ArrayList<Bed> bedList)
{
int check = pos;
int count = 0;
if(pos >= bedList.size())
return -1;
while(count != numOfBeds)
{
if(bedList.get(check).ifAvailable())
check++;
else
break;
count++;
}
if(count == numOfBeds)
return pos;
return multiEmptyBeds(check++, numOfBeds, bedList);
}
编辑:解决了!请参阅下面的解决方案/优化...