第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為了獲得最大數(shù)量的產(chǎn)品并給予一定的金錢限制

為了獲得最大數(shù)量的產(chǎn)品并給予一定的金錢限制

炎炎設(shè)計(jì) 2023-10-18 16:12:24
問(wèn)題是給出一個(gè)產(chǎn)品價(jià)格列表,如 [2,3,5,1,1,2,1] 和預(yù)算為 5,輸出應(yīng)該是可以購(gòu)買的最大產(chǎn)品數(shù)量。對(duì)于這個(gè)是 4 ([1,1,2,1])我的代碼如下,有時(shí)它可以工作,但對(duì)于像[2,3,5,1]這樣的價(jià)格,預(yù)算= 7,它應(yīng)該是3,但它是2。你們能幫忙檢查我代碼的哪一部分是錯(cuò)誤的嗎?謝謝def getMaximumOutfits(money,outfits):  result = []  spent = 0  max_length = 0  for i in range(len(outfits)):      spent+=outfits[i]      if spent <=money:          if i!=len(outfits)-1:              result.append(outfits[i])          else:              result.append(outfits[i])              if max_length < len(result):                  max_length = len(result)      else:          if max_length<len(result):              max_length = len(result)          result=[]          spent = outfits[i]          if spent <= money:              result.append(outfits[i])  print(max_length)
查看完整描述

2 回答

?
Cats萌萌

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊

在運(yùn)行循環(huán)之前,將價(jià)格從最小到最大排序。對(duì)于您的示例,它先添加 2,然后添加 3,然后添加 5,發(fā)現(xiàn)大于 7,因此返回 2。如果按順序排列,則會(huì)添加 1、2 和 3,然后再添加到 5。



查看完整回答
反對(duì) 回復(fù) 2023-10-18
?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

您設(shè)置程序來(lái)嘗試每個(gè)選項(xiàng)的方式是違反直覺(jué)的。如果先對(duì)列表進(jìn)行排序,則無(wú)需每次都從頭開(kāi)始重試,只需瀏覽列表一次。您可以通過(guò)在開(kāi)始處放置 來(lái)非常簡(jiǎn)單地完成此操作outfits=sorted(outfits)。這消除了對(duì)大部分代碼的需求,因?yàn)樽畋阋说倪x項(xiàng)永遠(yuǎn)是第一個(gè)。


您可以做出的另一個(gè)改進(jìn)是,您實(shí)際上不需要跟蹤諸如花費(fèi)和結(jié)果之類的事情。由于您唯一關(guān)心的是您可以購(gòu)買多少商品,因此您可以創(chuàng)建一個(gè)變量(從 0 開(kāi)始),并在每次您買得起另一件商品時(shí)為其添加 1。


另一個(gè)可能的改進(jìn)是,您不必每次都檢查,if spent<money只需將錢視為“余額”,然后從總數(shù)中減去您花費(fèi)的金額,直到錢小于 0。


只是作為一個(gè)快速的側(cè)面觀點(diǎn),而不是寫(xiě)


for i in len(outfits):

    spent+=outfits[i]       

您可以迭代列表本身


for i in outfits:

    spent+=i

并得到相同的結(jié)果


您的最終代碼應(yīng)該如下所示:


def getMaximumOutfits(money,outfits):

    outfits=sorted(outfits)#sorts the list from smallest --> biggest

    items=0

    max_size=0

    for i in outfits: #goes through each element in the outfit list

        money-=i   #subtracts the cost of this item from the remaining money

        if money<0: #if they couldn't afford this item

            max_size=items #the amount of items they had before this one is their max

        else: #if they can afford this item

            items+=1 #the total items goes up by 1

    return(max_size)

print(getMaximumOutfits(7,[2,3,5,1]))

>>> 3

有任何問(wèn)題請(qǐng)隨時(shí)詢問(wèn)我(們 ;)


查看完整回答
反對(duì) 回復(fù) 2023-10-18
  • 2 回答
  • 0 關(guān)注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)