LeetCode如何解決跳水板問題
這篇文章將為大家詳細講解有關(guān)LeetCode如何解決跳水板問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)公司是專業(yè)的敖漢網(wǎng)站建設(shè)公司,敖漢接單;提供網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行敖漢網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
1
題目描述
用兩種尺寸的木板建造跳水板,尺寸分別為longer和shorter,一共使用k塊,求可以得到的所有跳水板長度,并由小到大排序。如:shorter=1,longer=2,k=3,最后結(jié)果為[3,4,5,6]。
2
題解
思路:數(shù)學(xué)計算一共使用k塊木板,所以如果longer使用了i塊,那么shorter就使用k-i塊,基于這樣的基本思路可知,本題可以在線性時間內(nèi)完成,并且用的shorter塊數(shù)越多,整體跳水板長度越短,因此在計算時shorter個使用個數(shù)從k開始逐次遞減,可避免之后的排序操作。除上述基本情況外還要考慮兩種特殊情況,一是當(dāng)k=0,則返回空,二是當(dāng)shorter=longer,則返回的結(jié)果為shorter*k(longer*k)。class Solution: def divingBoard(self, shorter: int, longer: int, k: int) -> List[int]: s=[] if k==0: return s for i in range(0,k+1): s.append(longer*i+shorter*(-i+k)) s = list(set(s)) s.sort() return s
關(guān)于“LeetCode如何解決跳水板問題”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
網(wǎng)頁題目:LeetCode如何解決跳水板問題
URL標(biāo)題:http://www.xueling.net.cn/article/ieoceg.html