کوچنيان د کینډی لیټکوډ حل خورا لوی شمیر سره


مشکل کچه په اسانۍ سره
په مکرر ډول دننه پوښتل کیږي ترلاسه کړئ Amazon د بلومبرګ
پیشه

په "ستونزه کې د کوچنيانو لوی شمیر سره کوچنيان" ، موږ ته د انټیرجن یو لړ چمتو شوي چې د چاکلیټونو نمایندګي کوي ځینې ماشومانو ترلاسه کړي او ځینې اضافي کینډیز چې په هر ډول توزیع کیدی شي. اوس ، موږ موندلو ته اړتیا لرو:

  • ایا هر ماشوم د چاکلیټ ترټولو لوی شمیر کولی شي د توزیع وروسته(یا په اکثریت سره یا ګډ)

موږ اړتیا لرو چې دا امکان د بولین ویکتور په ب ofه چاپ کړو.

بېلګه

Array = {1 , 4 , 5 , 6 , 7}
Extra = 5
false true true true true

تشریح

لومړی ماشوم: که څه هم موږ ټولو راکړ لومړي ماشوم ته اضافي شمعې ، دا به 6 خوږې ولري <7 (پنځم ماشوم). نو ، موږ چاپ کوو غلط د دې لپاره.

دوهم ماشوم: موږ ټول ورکوو دې ماشوم ته اضافي شمعې ورکوي چې شمیر یې 9 > 7 (پنځم ماشوم). نو ، موږ چاپ کوو رښتيا د دې لپاره.

په ورته ډول ، د دریم ، څلورم او پنځم ماشوم لپاره دا اسانه ده چې وګورئ چې دوی کولی شي د مطلوب توزیع وروسته د شمعې ترټولو لوی شمیر ولري.

روش (لالچی)

په ستونزه کې ، موږ د اضافي خواږو توزیع کولو لپاره زموږ له انتخاب څخه خپلواک یو. د غوره د هر ماشوم لپاره د پریکړې کولو لاره به دا وي چې دا ټول اضافي خواږه ورکړي او بیا یې اړین حالت وګوري. په پام کې ونیسئ ، موږ اړتیا لرو د هرچا لپاره پایلې ومومئ ith ماشوم اوس ، د شمعې اعظمي اندازه چې دې ته ورکړل کیدی شي د اضافي اضافي شمعې سره مساوي ده.

له همدې امله ، د شمعیو ټوله شمیره چې کولی شي د ith ماشوم = a [i] + اضافي شمعې. که دا ارزښت په کې د اعظمي عنصر څخه لوړ وي سور د توزیع دمخه ، موږ کولی شو پایلې ته ورسوو چې دا ماشوم د توزیع وروسته خورا ډیر خواږه کولی شي. له هغه وخته چې موږ موږ ته ټول اضافي خواږه راکړو ith یوازې ماشوم ، دا چل دی لالچی.

کوچنيان د کینډی لیټکوډ حل خورا لوی شمیر سره

الګوریتم

  1. د صف اعظمي حد ومومئ او لکه څنګه چې یې وساتئ مکس کانډیز
  2. یو بولین پیل کړئ پایله سور
  3. د سرنی له پیل څخه تر پایه یوه پایه پرمخ کړئ:
    1. که د شمعې اوسنی شمیره ith ماشوم + اضافي خواږه دي له دې څخه زیات یا مساوي مکس کانډیز:
      1. د دې ماشوم پایلې لکه څنګه چې تنظیم کړئ رښتيا, غلط بل ډول
  4. پایله چاپ کړئ

د لویانو شمیرو سره د ماشومانو موندلو لپاره د الګوریتم پلي کول

C ++ برنامه

#include <bits/stdc++.h>
using namespace std;

vector <bool> kidsWithCandies(vector <int> &candies , int extraCandies)
{
    int n = candies.size() , maxCandies = 0;
    for(int i = 0 ; i < n ; i++)
        if(candies[i] > maxCandies)
            maxCandies = candies[i];


    vector <bool> result(n);
    for(int i = 0 ; i < n ; i++)
        result[i] = (candies[i] + extraCandies >= maxCandies);

    return result;
}


int main()
{
    vector <int> candies = {1 , 4 , 5 , 6 , 7};
    int extraCandies = 5;
    for(bool x : kidsWithCandies(candies , extraCandies))
        cout << (x ? "true" : "false") << " ";
    cout << '\n';
    return 0;
}

جاوا پروګرام

class kids_with_candies
{
    public static void main(String args[])
    {
        int[] candies = {1 , 4 , 5 , 6 , 7};
        int extraCandies = 5;
        for(boolean x : kidsWithCandies(candies , extraCandies))
            System.out.print(x + " ");
    }


    static boolean[] kidsWithCandies(int[] candies , int extraCandies)
    {
        int n = candies.length , maxCandies = 0;
        for(int i = 0 ; i < n ; i++)
            if(candies[i] > maxCandies)
                maxCandies = candies[i];

        boolean[] result = new boolean[n];

        for(int i = 0 ; i < n ; i++)
            result[i] = (candies[i] + extraCandies >= maxCandies);

        return result;
    }
}
false true true true true

د کوچني خورا لوی شمیر سره د ماشومانو موندلو پیچلتیا تحلیل

د وخت پیچلتیا

O (N) ، N = د صف اندازه. لکه څنګه چې موږ یو ځل ټوله صف راجمع کوو.

د ځای پیچلتیا

O (N)، لکه څنګه چې موږ د هر ماشوم پایله په جلا صف کې خوندي کوو.