कुकी Leetcode समाधान असाइन गर्नुहोस्


कठिनाई तह सजिलो
बारम्बार सोधिन्छ अमेजन
लोभी

समस्या कुकीहरू नियुक्त गर्नुहोस् ल्याटकोड समाधान दुई एर्रेसँग प्रदान गर्दछ। एउटा एर्रेहरू कुकीजको आकार प्रतिनिधित्व गर्दछ र अन्यले बच्चाको लोभ प्रतिनिधित्व गर्दछ। समस्याले भन्छ कि तपाईं बच्चाहरूको अभिभावक हुनुहुन्छ, र तपाईं बच्चाहरूको अधिकतम संख्यामा सन्तुष्ट हुन चाहनुहुन्छ। तपाईं बच्चालाई केवल एउटा कुकी दिन सक्नुहुन्छ। सामग्री बच्चाहरूको अधिकतम संख्या फेला पार्नुहोस्। पहिले केही उदाहरणहरू लिनुहोस्।

g = [1,2,3], s = [1,1]
1

स्पष्टीकरण: हामीसँग प्रत्येक १ साइजको दुई कूकीहरू छन्, र तीन बच्चाहरू फरक सामग्री मानसहित। हामी केवल एकल बाल सामग्री बनाउन सक्दछौं जुन लोभ मूल्य १ छ। अन्य दुई बच्चाहरूलाई ठूला कुकीहरू चाहिन्छ।

कुकी Leetcode समाधान असाइन गर्नुहोस्

g = [1,2], s = [1,2,3]
2

स्पष्टीकरण: हामी दुबै बच्चाहरूलाई सामग्री महसुस गर्न सक्दछौं किनकि कुकीहरू जुन हामीसँग छ त्यो आवश्यक आकारहरू बढी वा बराबर छ। यसरी आउटपुट २ हो।

Assign कुकीज़ Leetcode समाधान को लागी दृष्टिकोण

समस्या तोक्नुहोस् कुकीज लेटकोड समाधानले हामीलाई सामग्री बच्चाको अधिकतम संख्या खोज्नको लागि सोध्यो यदि हामी बच्चालाई एउटा मात्र कुकी दिन सक्छौं भने। यसप्रकार सबै भन्दा राम्रो तरीका भनेको लोभ भएर कम से कम लोभी बच्चालाई प्रयोग गर्न सकिने स-साना कुकीमा सन्तुष्ट महसुस गराउने प्रयास गर्नु हो। त्यसो भए, यस प्रक्रियाको नक्कल गर्न हामी दिईएको एर्रे दुबै क्रमबद्ध गर्दछौं र बच्चाहरूलाई कुकीहरू माना assign्कन गर्ने प्रयास गर्दछौं। यदि हामीले हालको कुकीलाई हालको बच्चामा हस्तान्तरण गर्न सक्दैनौं भने हामी हालको बच्चालाई सन्तुष्ट नगरेसम्म हामी अर्को कुकीको प्रयास गर्दछौं। किनकि यदि हामी हालको बच्चा सन्तुष्ट गर्न सक्दैनौं भने हामी हालका कुकीहरू मार्फत अर्को बच्चाहरूलाई सन्तुष्ट पार्न सक्दैनौं।

कोड

C ++ कोड Assign कुकीज़ Leetcode समाधानका लागि

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

int findContentChildren(vector<int>& g, vector<int>& s) {
    sort(g.begin(), g.end());
    sort(s.begin(), s.end());
    int numberOfChildren = g.size(), numberOfCookies = s.size();
    int cookie = 0, answer = 0;
    for(int i=0;i<numberOfChildren && cookie<numberOfCookies;){
        if(s[cookie] >= g[i]){
            i++;
            answer++;
        }
        cookie++;
    }
    return answer;
}

int main(){
    vector<int> g = {1, 2, 3};
    vector<int> s = {1, 1};

    cout<<findContentChildren(g, s);
}
1

जाकी कोड Assign कुकीज़ Leetcode समाधान को लागी

import java.util.*;
import java.lang.*;
import java.io.*;
 
class Ideone
{
    public static int findContentChildren(int[] g, int[] s) {
        Arrays.sort(g);
        Arrays.sort(s);
        int numberOfChildren = g.length;
        int numberOfCookies = s.length;
        int cookie = 0, answer = 0;
        for(int i=0;i<numberOfChildren && cookie<numberOfCookies;){
            if(s[cookie] >= g[i]){
                i++;
                answer++;
            }
            cookie++;
        }
        return answer;
    }
 
  public static void main (String[] args) throws java.lang.Exception
  {
    int[] g = {1, 2, 3};
    int[] s = {1, 1};
 
    System.out.println(findContentChildren(g, s));
  }
}
1

जटिलता विश्लेषण

समय जटिलता

O (NlogN), दिइएको एर्रे क्रमबद्ध गर्न आवश्यक समयको कारण। यहाँ एनले दिइएको एर्रेमा एलिमेन्ट्सको संख्या प्रतिनिधित्व गर्दछ।

ठाउँ जटिलता

O (NlogN), दिइएको स्थानको क्रमबद्ध गर्न आवश्यक स्थानको कारण। फेरी एनले एर्रेमा एलिमेन्ट्सको संख्या प्रतिनिधित्व गर्दछ।