Skip to content

245. Shortest Word Distance III #94

@jzhangnu

Description

@jzhangnu
var shortestWordDistance = function(words, word1, word2) {
    var w1 = -1,
        w2 = -1,
        index = -1,
        min = Infinity;
    for(var i = 0; i < words.length; i++){
        if(word1 === word2){
            if(words[i] === word1){
                if(index === -1){index = i}
                else{
                    min = Math.min(min, Math.abs(i - index))
                    index = i;
                }
            }
        }
        else{
            if(words[i] === word1) w1 = i;
            if(words[i] === word2) w2 = i;
            if (w1 !== -1 && w2 !== -1)min = Math.min(min, Math.abs(w1 - w2))
        }
    }
    return min
};


! no nested condition checks
function shortestWordDistance(words, word1, word2) {
	var min = words.length, p1 = -words.length, p2 = words.length;

	words.forEach((v, i) => {
		if (v === word1 && v === word2) [p1, p2] = [i, p1];
		else if (v === word1) p1 = i;
		else if (v === word2) p2 = i;

		min = Math.min(min, Math.abs(p1 - p2));
	});

	return min;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions