LeetCode 1103. 分糖果 II Distribute Candies to People

【題目描述】
排排坐,分糖果。
我們買(mǎi)了一些糖果 candies,打算把它們分給排好隊(duì)的 n = num_people 個(gè)小朋友。
給第一個(gè)小朋友 1 顆糖果,第二個(gè)小朋友 2 顆,依此類(lèi)推,直到給最后一個(gè)小朋友 n 顆糖果。
然后,我們?cè)倩氐疥?duì)伍的起點(diǎn),給第一個(gè)小朋友 n + 1 顆糖果,第二個(gè)小朋友 n + 2 顆,依此類(lèi)推,直到給最后一個(gè)小朋友 2 * n 顆糖果。
重復(fù)上述過(guò)程(每次都比上一次多給出一顆糖果,當(dāng)?shù)竭_(dá)隊(duì)伍終點(diǎn)后再次從隊(duì)伍起點(diǎn)開(kāi)始),直到我們分完所有的糖果。注意,就算我們手中的剩下糖果數(shù)不夠(不比前一次發(fā)出的糖果多),這些糖果也會(huì)全部發(fā)給當(dāng)前的小朋友。
返回一個(gè)長(zhǎng)度為 num_people、元素之和為 candies 的數(shù)組,以表示糖果的最終分發(fā)情況(即 ans[i] 表示第 i 個(gè)小朋友分到的糖果數(shù))。

【示例1】

輸入:candies = 7, num_people = 4
輸出:[1,2,3,1]
解釋?zhuān)?第一次,ans[0] += 1,數(shù)組變?yōu)?[1,0,0,0]。
第二次,ans[1] += 2,數(shù)組變?yōu)?[1,2,0,0]。
第三次,ans[2] += 3,數(shù)組變?yōu)?[1,2,3,0]。
第四次,ans[3] += 1(因?yàn)榇藭r(shí)只剩下 1 顆糖果),最終數(shù)組變?yōu)?[1,2,3,1]。

【示例2】

輸入:candies = 10, num_people = 3
輸出:[5,2,3]
解釋?zhuān)?第一次,ans[0] += 1,數(shù)組變?yōu)?[1,0,0]。
第二次,ans[1] += 2,數(shù)組變?yōu)?[1,2,0]。
第三次,ans[2] += 3,數(shù)組變?yōu)?[1,2,3]。
第四次,ans[0] += 4,最終數(shù)組變?yōu)?[5,2,3]。

【思路】
1、剛開(kāi)始題目理解有誤,一直驗(yàn)證不成功,題目是一直輪詢轉(zhuǎn)圈,1+...+n, n+1+...+2n, 2n+1+..+33.........
2、所以只要糖果總數(shù)大于1 就一直循環(huán),直到分完
3、數(shù)組下標(biāo)需要取余人數(shù) candies%num_count 這樣數(shù)組才可以一直循環(huán)下去
4、時(shí)間復(fù)雜度O(n)
5、空間復(fù)雜度O(1)

swift代碼實(shí)現(xiàn):

func distributeCandies1(_ candies: Int, _ num_people: Int) -> [Int] {
    var result = Array.init(repeating: 0, count: num_people)
    var step = 0
    var all = candies
    while all > 0 {
        let tmp = min(all, step+1)
        let index = step%num_people
        result[index]+=tmp
        step+=1
        all-=step
    }
    return result
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這是小川的第393次更新,第425篇原創(chuàng) 01 看題和準(zhǔn)備 今天介紹的是LeetCode算法題中Easy級(jí)別的第2...
    程序員小川閱讀 711評(píng)論 0 2
  • 題目鏈接難度:簡(jiǎn)單 類(lèi)型: 數(shù)組 排排坐,分糖果。 我們買(mǎi)了一些糖果 candies,打算把它...
    wzNote閱讀 845評(píng)論 0 1
  • 排排坐,分糖果。 我們買(mǎi)了一些糖果 candies,打算把它們分給排好隊(duì)的 n = num_people 個(gè)小朋友...
    習(xí)慣了_就好閱讀 224評(píng)論 0 0
  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類(lèi)型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來(lái)閱讀 4,045評(píng)論 0 2
  • 今天一起床我就想分享給我伙伴最近的一些感悟。不過(guò)白天我時(shí)間不夠,因?yàn)橐獛抟獙W(xué)習(xí)要去見(jiàn)朋友然后晚上我又要去上如何教...
    楚燕隨行筆記閱讀 332評(píng)論 0 0

友情鏈接更多精彩內(nèi)容