日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 多条件 选择 算法_python部署python算法 - 快速寻找满足条件的两个数

發布時間:2024/9/27 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 多条件 选择 算法_python部署python算法 - 快速寻找满足条件的两个数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目前提是一定存在這樣兩個數

解法一就不寫了...一般想不到吧

一開始想到的是解法二最后的用hash表

(其實是想到創建一個跟target一樣大的數組啦..存在就寫入index,但是要全部找出,那得二維數組,但是后面想到target要是很大的話,是不是浪費空間了...所以改成Dict)

后面發現題目只要求給出兩個數就好了啊- -

擴展問題比較有意思

找三個應該不難,其它還不清楚,有想再補充...

1.二維數組def find_pair(A, target):

B = [[] for i in range(target + 1)]

for i in range(0, len(A)):

if A[i] <= target:

B[A[i]].append(i)

for i in range(0, target / 2 + 1):

if len(B[i]) != 0 and len(B[target - i]) != 0:

print(i, B[i], target-i, B[target-i])

if __name__ == "__main__":

A = [0, 1, 1, 2, 11, 8, 3, 4, 5, 6, 7, 8, 9, 10]

find_pair(A, 9)

2.字典

電腦技術網認為此文章對《python部署python算法 - 快速尋找滿足條件的兩個數》說的很在理。def find_pair(A, target):

B = {}

for i in range(0, len(A)):

if A[i] <= target:

if not B.has_key(A[i]):

B[A[i]] = [i]

else:

B[A[i]].append(i)

for i in range(0, target / 2 + 1):

if B.has_key(i) and B.has_key(target-i):

print(i, B[i], target-i, B[target-i])

if __name__ == "__main__":

A = [0, 1, 1, 2, 11, 8, 3, 4, 5, 6, 7, 8, 9, 10]

find_pair(A, 9)

3.這種方法都已經重新排序了,不知道書上還返回索引有什么意義...排序偷懶直接用內置的啦...def find_pair(A, target):

A.sort()

i, j = 0, len(A) - 1

while i < j:

s = A[i] + A[j]

if s == target:

print(i, A[i], j, A[j])

i += 1

j -= 1

elif s < target:

i += 1

else:

j -= 1

if __name__ == "__main__":

A = [0, 1, 1, 2, 11, 8, 3, 4, 5, 6, 7, 8, 9, 10]

find_pair(A, 9)

更多:python部署python算法 - 快速尋找滿足條件的兩個數

https://www.002pc.comhttps://www.002pc.com/python/6000.html

你可能感興趣的python,滿足條件,算法,尋找,快速,兩個

No alive nodes found in your cluster

0踩

0 贊

總結

以上是生活随笔為你收集整理的python 多条件 选择 算法_python部署python算法 - 快速寻找满足条件的两个数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。