【发布时间】:2020-03-19 00:09:36
【问题描述】:
我正在尝试减少这些循环以优化一些代码。有人建议我使用滑动窗口技术,但我似乎无法让它适合我的示例。
我添加括号中的所有内容只是为了显示它们是什么类型。 file.get(..) 方法从文件中的给定索引返回一个字节。外部循环可以(通常)迭代一个巨大的范围,因为这些文件非常大。 asciiCombo 包含 2-8 个元素。
这是一个嵌套循环,我不确定如何减少:
for (long i = offsetInBytes; i < (long) file.length; ++i) {
int match = 0;
for (int j = 0; j < (int[]) asciiCombo.length; ++j) {
if (file.get(i + j) == asciiCombo[j]) {
match++;
} else {
break;
}
}
}
用 if 语句或一些要查找的集合替换内部循环与嵌套循环基本相同,因此不会这样做。我一直无法实现滑动窗口(甚至不确定是否可以)。
我在这里遇到了一个卡住的地方,希望能提供任何帮助。谢谢!
【问题讨论】:
标签: java algorithm loops optimization