分糖果 II

排排坐,分糖果。

我們買了一些糖果 candies,打算把它們分給排好隊(duì)的 n = num_people 個(gè)小朋友。

給第一個(gè)小朋友 1 顆糖果,第二個(gè)小朋友 2 顆,依此類推,直到給最后一個(gè)小朋友 n 顆糖果。

然后,我們?cè)倩氐疥?duì)伍的起點(diǎn),給第一個(gè)小朋友 n + 1 顆糖果,第二個(gè)小朋友 n + 2 顆,依此類推,直到給最后一個(gè)小朋友 2 * n 顆糖果。

重復(fù)上述過程(每次都比上一次多給出一顆糖果,當(dāng)?shù)竭_(dá)隊(duì)伍終點(diǎn)后再次從隊(duì)伍起點(diǎn)開始),直到我們分完所有的糖果。注意,就算我們手中的剩下糖果數(shù)不夠(不比前一次發(fā)出的糖果多),這些糖果也會(huì)全部發(fā)給當(dāng)前的小朋友。

返回一個(gè)長度為 num_people、元素之和為 candies 的數(shù)組,以表示糖果的最終分發(fā)情況(即 ans[i] 表示第 i 個(gè)小朋友分到的糖果數(shù))。

示例 1:

輸入:candies = 7, num_people = 4
輸出:[1,2,3,1]
解釋:
第一次,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]
解釋:
第一次,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 <= candies <= 10^9
1 <= num_people <= 1000

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/distribute-candies-to-people
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

class Solution {
    public int[] distributeCandies(int candies, int num_people) {
        int[]result = new int[num_people];
        int sum = 0;
        int n = 0;
        //找著剛好夠分的部分
        while(sum <= candies){
            n++;
            sum = ( 1 + n ) * n / 2;
        }
        
        //上面的循環(huán)多做了一次
        sum -= n;
        n--;
        int index = 0;
        for(int i = 1; i <= n; i++){
            index = (i - 1) % num_people;
            result[index] += i;
        }
        //分完剩下的給最后一個(gè)人
        if(candies - sum > 0){
            index++;
            index = index % num_people;
            result[index] += candies - sum;
        }

        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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 題目鏈接難度:簡單 類型: 數(shù)組 排排坐,分糖果。 我們買了一些糖果 candies,打算把它...
    wzNote閱讀 846評(píng)論 0 1
  • 循環(huán)暴力求解。自增取余求people下標(biāo) 對(duì)于最后一個(gè)被分糖果的people,需要把多余且不夠完全分的給加上 完整代碼
    Tibbersshao閱讀 307評(píng)論 0 0
  • 早上,他靠了靠我的額頭,說,怎么這么燙,肯定發(fā)燒了。我不信,但整晚頭疼得厲害,并不覺得身子熱。 便讓他拿了溫度計(jì)來...
    尹小月閱讀 310評(píng)論 0 2
  • 前些日子,家鄉(xiāng)飛雪,雪的圖片在微信中飄蕩,有雪的時(shí)候,情緒難免有些騷動(dòng),埋在心底的牽念由此滋生,故寫下: ...
    蘿卜起苔閱讀 166評(píng)論 0 0
  • 人與人的交往其實(shí)就是心與心的溝通。以真心換真心,坦誠相待,你付出多少,才會(huì)得到多少。也許這一路并不是一帆風(fēng)順,但是...
    六爸啦啦啦閱讀 84評(píng)論 0 0

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