提问人:Ashley 提问时间:10/28/2022 最后编辑:AbraAshley 更新时间:10/28/2022 访问量:185
如何在 Java 的字符串数组中找到最长的连续数字序列?
How to find the longest consecutive sequence of numbers in a string array in Java?
问:
给定一个列表,其中每个项目都是字母“I”(不完整)或数字(已完成),输出最长的完整传递序列的长度。列表前面是项数。给定 8 4 15 9 I 30 2 I 20,输出为 3(因为最长的完整刀路序列是 4 15 9)。
如果序列是数字和 I 的混合,我能够找到正确的数字,但如果序列只有 I 或只有数字,则无法找到正确的数字。
int currSeq = 0;
int longestSeq = 0;
int lastIndex = 0;
boolean hasHit = false;
for (i = 0; i < numItems; i++) {
currSeq = i - lastIndex;
if (listItems[i].equals("I") && currSeq > longestSeq) {
longestSeq = currSeq - (hasHit ? 1 : 0);
lastIndex = i;
hasHit = true;
}
}
答:
0赞
Oleg Cherednik
10/28/2022
#1
public static int findLongestConsecutiveNumberSequenceLength(Object[] items) {
int res = 0;
for (int i = 0, cur = 0; i < items.length; i++) {
cur = "I".equals(items[i]) ? 0 : cur + 1;
res = Math.max(res, cur);
}
return res;
}
上一个:查找序列中的第 n 项
下一个:序列 Java 中奇数的递归问题
评论
i==numItems-1
)listItems
Object[] listItems