我试图计算随机生成的数组MOODS中连续增加的元素中最长的一串。此代码总是返回少于正确的代码。
int maxDays = 0;
int days = 0;
for (int i = 0; i < MOODS.size() - 1; i++) {
if (MOODS.get(i + 1) > MOODS.get(i)) {
days += 1;
if(days>maxDays){
maxDays=days;
}
} else {
days = 0;
}
}
return maxDays;
}
答案 0 :(得分:5)
您将始终至少有一个增加的字符串序列,长度为1.只需将天数更改为1即可。
int maxDays = Math.min(1, MOODS.size());
int days = 1;
for (int i = 0; i < MOODS.size() - 1; i++) {
if (MOODS.get(i + 1) > MOODS.get(i)) {
days += 1;
if (days>maxDays){
maxDays=days;
}
} else {
days = 1;
}
}
return maxDays;