激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 如何用itertools解決無序排列組合的問題

如何用itertools解決無序排列組合的問題

2020-11-07 00:53腳本之家 Python

下面小編就為大家帶來一篇如何用itertools解決無序排列組合的問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

最近我作為Python菜鳥一枚開始征戰Codewars,所以打算在這里記下遇到的有意思的題目。今天這第一題叫做“Best Travel”:

John和Mary計劃去一些小鎮旅行。Mary已經列好了這些小鎮之間的距離比如ls=[50, 55, 57, 58, 60]。但是John不想開車太累,所以提出了兩個要求:1) 開車不超過某個距離比如t=174 miles 2) 只能去3個小鎮。

選擇哪3個小鎮可以讓John和Mary都滿意呢?(即找到距離之和最接近或等于t的3個小鎮)

這道題目可以抽象成:

輸入一個整數列表ls和整數t:

1. 找出從ls中任取三個元素的所有組合

2. 計算每個組合的三個元素之和

3. 如果存在小于或等于t的和,那么從中挑出最大的,然后輸出這個最大和對應的三元素組合

4. 如果不存在,只好返回None

實現要點:

1. 無序排列組合:

itertools模塊的combinations方法

2. 求和:

用sum函數

3. 求最大值:

用max函數

4. 捕獲異常:

用try-except

借用這一題的某個best solution, 實現代碼為:

?
1
2
3
4
5
6
7
def choose_best_sum(t, k, ls):
  import itertools
 
  try:
    return max(sum(combination) for combination in itertools.combinations(ls, k) if sum(combination) <= t)
  except:
    return None

以上這篇如何用itertools解決無序排列組合的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人在线网站 | 黄色伊人网站 | 黄色片在线免费播放 | 91精品片 | 久久新地址 | www国产网站| 黄色网址进入 | 成人福利视频在 | 日本精品二区 | 毛片118极品美女写真 | 亚洲va久久久噜噜噜久久男同 | 成人免费福利视频 | 国产小视频一区 | 美女喷水网站 | 亚洲性综合网 | 久久91精品久久久久清纯 | 黄网站色成年大片免费高 | 毛片免费观看视频 | 国产乱淫av片免费网站 | 在线观看中文字幕国产 | 欧美亚洲另类在线 | 日本黄色一级毛片 | 欧美日韩在线看片 | 暴力肉体进入hdxxxx古装 | 日韩欧美视频一区二区三区 | 黄网站在线免费 | 一区二区三区国产视频 | 欧美成人三级视频 | 被啪羞羞视频在线观看 | 欧美在线成人影院 | 国产精品久久久久久久久久久久久久久 | 91av原创| av在线高清观看 | 国产一区二区三区四区精 | 羞羞视频免费观看入口 | 国产精品亚洲欧美一级在线 | 亚洲影视在线 | www.成人精品 | 国产一区二区三区四区波多野结衣 | 国产一区精品视频 | 久草在线高清视频 |