leetcode word Pattern javascript的O(n)和O(n2)两种不同解法用的时间一样?

发布于 2022-09-01 19:25:53 字数 1730 浏览 28 评论 0

题目地址word Pattern
第一种O(n2)解法,我一开始想出的笨方法。

var wordPattern = function(pattern, str) {
    var patternArray = pattern.split("");
    var strArray = str.split(" ");
    var result = true;
    if (patternArray.length !== strArray.length) {
        return false;
    }
    patternArray.forEach(function(curValue, index, arr) {
        var currIndex = index;
        for (; index > 0; index--) {
            if (curValue === arr[index - 1]) {
                if (strArray[currIndex] !== strArray[index - 1]) {
                    result = false;
                }
            } else {
                if (strArray[currIndex] === strArray[index - 1]) {
                    result = false;
                }
            }
        }
    }
    );
    return result;

}

第二种O(n)解法

var wordPattern = function(pattern, str) {
    var strArray = str.split(" ");
    var hash = {};
    var hash1 = {};
    if(pattern.length !== strArray.length){
        return false;
    }
    for(var i=0;i<pattern.length;i++){
        var item = pattern.charAt(i);
        var strItem = strArray[i];
        if(hash[item]){
            if(!hash1[strItem]) return false;
            hash[item] = false;
            hash1[strItem] = false;
        }else{
            if(hash1[strItem]) return false;
            hash[item] = true;
            hash1[strItem] = true;
        }
    }
    return true;
    
};

两种解法消耗的时间既然一样、、、

clipboard.png
有人能解答下吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

撩心不撩汉 2022-09-08 19:25:53

时间瓶颈可能不在你算法上

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文