有人能指導我在做什麼錯誤嗎?我在過去的4-5天裏進行了大量的研究,每個人都不斷指向子集總和問題或分區問題,對於簡單性原因,我只給出了表現不正確的部分。如何計算給定整數列表的確切目標值
for (Iterator<Activity> iterator = listOfActivities.iterator(); iterator.hasNext();) {
Activity currentAct = iterator.next();
if (time + currentAct.getTime() <= 180) {
timetable.add(currentAct);
time += currentAct.getTime();
iterator.remove(); //removing the current activity once its added to the schedule.
}
}
time += 60;
timetable.add(new Activity("Eat Food 20min", "20"));
// Post Lunch Activities Start here:
for (Iterator<Activity> iterator = listOfActivities.iterator(); iterator.hasNext();) {
Activity currentAct = iterator.next();
if (time + currentAct.getTime() >= 240 && time + currentAct.getTime() <= 480) {
timetable.add(currentAct);
time += currentAct.getTime();
iterator.remove();
}
}
我們不知道'listOfActivities'包含什麼''時間表'是什麼。請嘗試創建[mcve]。不只是最小的,但*還*完整。 –
如果你的代碼在問題中提供了代碼,而不是作爲外部鏈接,那將會更加清楚。你是否努力通過調試器來完成代碼,並確保你的算法在「紙上」有意義? –
如果它需要完全等於180,那麼我不能想到線性優化之外的任何算法(我在Java中沒有這樣做)。 –