算法 - leetcode word Pattern javascript的O(n)和O(n2)两种不同解法用的时间一样?
巴扎黑
巴扎黑 2017-04-10 16:02:40
[JavaScript讨论组]

题目地址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;
    
};

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


有人能解答下吗?

巴扎黑
巴扎黑

全部回复(1)
迷茫

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号