我有一个单词列表,如:
List={"word1", "word2", "word3", ....}
Run Code Online (Sandbox Code Playgroud)
如何生成这两个单词的所有独特组合的"双字长度"列表?
例如,如果上面的列表只包含三个单词,那么输出可能如下:
word1 word2
word1 word3
word2 word1
word2 word4
word3 word1
word3 word2
Run Code Online (Sandbox Code Playgroud)
另外,请注意与... "word1 word2"不一样"word2 word1".
我知道这样一个最简单的解决方案:
for i=1 to N
for j=1 to N
if(i!=j) then
print List[i]+" "+List[j]
Run Code Online (Sandbox Code Playgroud)
但这有O(n 2)的复杂性.那么,实现相同的最差情况复杂度的最佳算法是什么.