我正在尝试计算随机生成的数组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;
}
最佳答案
您将始终至少有一个长度为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;