gpt4 book ai didi

Java想要改进一个代码片段

转载 作者:行者123 更新时间:2023-12-02 05:26:15 30 4
gpt4 key购买 nike

我希望改进这段代码:

for (int i = 0; i < a.length(); i++) {
for (int j = 0; j < b.length(); j++) {
if (arrayA[i] == arrayB[j]) {
arrayA[i] = ' ';
arrayB[j] = ' ';
}
}
}

成本高昂的操作是

arrayA[i] = ' ';
arrayB[j] = ' ';

如果我注释掉代码的运行时间从 180 毫秒到 12 毫秒...

需要类似的东西,以便我可以计算空数组。

最佳答案

您可以通过在 if 出现后立即跳出内循环来改进这一点条件满足。您还可以在外循环内使用临时变量来提高性能,以避免不断地对 arrayA 执行下标操作。在内循环内部:

for (int i = 0; i < a.length(); i++) {
char ch = arrayA[i];
for (int j = 0; j < b.length(); j++) {
if (ch == arrayB[j]) {
ch = ' ' = arrayB[j] = ' ';
break;
}
}
arrayA[i] = ch;
}

可以安全地跳出内循环的原因是一旦ch (或原始代码中的arrayA[i])设置为' ' ,然后在内循环的后续传递中,if仅当 arrayB[j] 时测试才会成功已经是' ' ,因此分配将使值保持不变(并且仅消耗 CPU 周期)。

关于Java想要改进一个代码片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25984586/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com