私は問題を調べています:任意のリストが与えられた場合、この場合は[9,15,1,4,2,3,6]であり、与えられた結果(この場合は10)に合計される任意の2つの数値を見つけます。 。これを行うための最も効率的な方法は何でしょうか?私の解決策は、大きなO表記でn 2です。数値をフィルタリングして並べ替えたとしても、これをより効率的に行う方法があると確信しています。前もって感謝します
myList = [9,15,1,4,2,3,6]
myList.sort()
result = 10
myList = filter(lambda x:x < result,myList)
total = 0
for i in myList:
total = total + 1
for j in myList[total:]:
if i + j == result:
print i,j
break
この解決策はうまくいくと思います。
list = [9,15,1,4,2,3,6]
result = 10
list.sort()
list = filter(lambda x:x < result,list)
myMap = {}
for i in list:
if i in myMap:
print myMap[i], i
break
myMap[result - i] = i
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加