首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化时间复杂度- Quinn McClusky

优化时间复杂度- Quinn McClusky
EN

Stack Overflow用户
提问于 2017-10-10 01:25:39
回答 1查看 48关注 0票数 0

我实现了Quinn McClusky逻辑最小化,现在正在尝试优化这段代码:

代码语言:javascript
复制
public int[] differsMaxOneChar(String a, String b) {
    debug.println("Comparing " + a + " to " + b);
    int[] returnValue = {1, 0};
    boolean differs = false;
    for (int i = 0; i < a.length(); i++) {
        if (!(a.charAt(i) == b.charAt(i))) {
            if (differs) {
                returnValue[0] = 0;
                break;
            } else {
                differs = true;
                returnValue[1] = i;
            }
        }
    }
    return returnValue;
}

在这方面的任何帮助都将非常感谢。

字符串a和b的长度总是相同的。方法检查它们是否恰好在一个位置不同。A和b由'0‘、'1’和'X‘组成。没别的了。

EN

回答 1

Stack Overflow用户

发布于 2017-10-13 04:24:04

在O时间复杂度方面,你已经达到了O(n),这对于这个问题来说是尽可能好的。只有一些小方法(不会影响O复杂度)可以优化,比如将a的长度存储为变量(而不是在每次迭代中重新计算它)。

此外,您的函数名称表明您正在检查它是否最多相差一个字符,但在您的描述中,您说的是“恰好一个”位置。你想要做的是什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46651880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档