復(fù)盤(pán)|第301場(chǎng)周賽
裝滿杯子需要的最短總時(shí)長(zhǎng)
【貪心 + 模擬】每次取最大的兩個(gè)減一,直到其中一個(gè)為 0 為止。
【數(shù)學(xué)】盡可能多的使用裝滿2被不同類(lèi)型的水,此時(shí)最小秒數(shù)是向上取整,存在一種水的類(lèi)型遠(yuǎn)超其他兩種類(lèi)型時(shí),最小秒數(shù)為max(amount)。
無(wú)限集中的最小數(shù)字
【有序數(shù)組】模擬。
移動(dòng)片段得到字符串
【雙指針】無(wú)論怎么移動(dòng),L和R無(wú)法互相穿過(guò)對(duì)方,那么去掉_后的剩余字符應(yīng)該是相同的,否則返回false。然后用雙指針遍歷start[i]和target[j],分類(lèi)討論:如果當(dāng)前字符為L(zhǎng)且ij,那么這個(gè)R由于無(wú)法向左移動(dòng),返回false。遍歷完,若中途沒(méi)有返回false就返回true。
統(tǒng)計(jì)理想數(shù)組的數(shù)目
【組合數(shù)學(xué) + 質(zhì)因數(shù)分解】用隔板法:把n個(gè)盒子當(dāng)做n-1個(gè)隔板,隔板加上球總共有n-1+k個(gè)位置,從中選擇一1個(gè)位置放隔板,k個(gè)位置放球,兩個(gè)隔板之間的球(球可以有零個(gè),一個(gè),或者多個(gè))放入對(duì)應(yīng)盒子中(最兩側(cè)的隔板同理)因此方案數(shù)為C(n+k-1,n-1)=C(n+k-1,k)。對(duì)于多個(gè)不同的質(zhì)因數(shù),互相之間無(wú)影響,可以采用乘法原理計(jì)算。枚舉所有[1,maxValue]的x,計(jì)算對(duì)應(yīng)的組合數(shù),累加即為答案。代碼中,ks[x] 為 x 分解質(zhì)因數(shù)后,每個(gè)質(zhì)因數(shù)的個(gè)數(shù)列表。