Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में डेली टेम्परेचर्स

मान लीजिए हमारे पास पॉजिटिव टेम्परेचर्स का एक एरे है जो टेम्परेचर्स T को दर्शाता है। कार्य दी गई लिस्ट में अगले गर्म टेम्परेचर के लिए कितने दिन हैं, इसकी गणना करना है।

उदाहरण के लिए

इनपुट-1: T = [ 73, 74, 75, 71, 69, 72, 76, 73]

आउटपुट: [1, 1, 4, 2, 1 ,1 ,0 ,0]

व्याख्या: दिए गए टेम्परेचर्स की लिस्ट [73, 74, 75, 71, 69, 72, 76, 73] में, अगला बड़ा टेम्परेचर दिन 1 पर है। इसी तरह, दिन 6 सभी टेम्परेचर्स में सबसे गर्म है, इस प्रकार आउटपुट [ 1, 1, 4, 2, 1, 1, 0, 0] होगा।

इस समस्या को हल करने का दृष्टिकोण

हमारे पास टेम्परेचर्स की एक लिस्ट है और हमें दिए गए टेम्परेचर्स से अगले गर्म दिन तक के दिनों की संख्या की गणना करनी है।

इस समस्या को हल करने के लिए, हम स्टैक का उपयोग कर सकते हैं। प्रारंभ में स्टैक खाली है, और हम जांचेंगे कि क्या स्टैक का टॉप खाली है, तो टेम्परेचर को पुश करें। अगला, यदि स्टैक के टॉप पर टेम्परेचर अगले उपलब्ध टेम्परेचर से कम है, तो इसका मतलब है कि यह ठंडा है, और हम इसे स्टैक से पॉप कर देंगे।

हम फिर से जांचेंगे कि क्या स्टैक के टॉप पर टेम्परेचर बड़ा या गर्म है, तो दिनों को घटाकर दिन की गणना करें और इंडेक्स को परिणाम में स्टोर करें।

  • टेम्परेचर डेटा का इनपुट लें।
  • एक पूर्णांक फ़ंक्शन dailyTemperature(int *T) टेम्परेचर एरे को इनपुट के रूप में लेता है और अगले सबसे गर्म टेम्परेचर की लिस्ट लौटाता है।
  • टेम्परेचर एरे पर पुनरावृति करें।
  • परिणाम लौटाने के लिए एक रिजल्ट वेक्टर या एरे बनाएं।
  • एक खाली स्टैक बनाएं और टेम्परेचर को पुश करते हुए जांचें कि क्या top() > T[i], तो इसे स्टैक में पुश करें और दिनों की गणना करें।
  • परिणाम स्टोर करें और लौटाएं।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
void dailyTemp(int * T, int n) {
    stack < int > s;
    int ans[n];
    memset(ans, 0, sizeof(ans));
    for (int i = 0; i < n; i++) {
        while (!s.empty() && T[s.top()] < T[i]) {
            int j = s.top();
            s.pop();
            ans[j] = i - j;
        }
        s.push(i);
    }
    for (int i = 0; i < n; i++) {
        cout << ans[i] << " " << ;
    }
}
int main() {
    int n = 8;
    int T[8] = {73, 74, 75, 71, 69, 72, 76, 73};
    dailyTemp(T, n);
    return 0;
}

आउटपुट

उपरोक्त कोड चलाने से आउटपुट इस प्रकार उत्पन्न होगा,

1 1 4 2 1 1 0 0

दिए गए टेम्परेचर में अगला गर्म टेम्परेचर दिन 4 पर है।

  1. C++ में प्रोसेस मारें C++ में प्रोसेस मारें

    मान लीजिए हमारे पास n प्रोसेस हैं, यहां प्रत्येक प्रोसेस की एक अद्वितीय आईडी होती है जिसे PID या प्रोसेस आईडी कहा जाता है और इसका PPID (पैरेंट प्रोसेस आईडी) भी होता है। प्रत्येक प्रोसेस का केवल एक पैरेंट प्रोसेस होता है, लेकिन उसके एक या अधिक चाइल्ड प्रोसेस हो सकते हैं। यह एक ट्री संरचना की तरह है।

  1. C++ में गिलहरी सिमुलेशन C++ में गिलहरी सिमुलेशन

    एक पेड़, एक गिलहरी, और कई नट्स हैं। स्थितियों को 2D ग्रिड में सेल द्वारा दर्शाया जाता है। आपका लक्ष्य गिलहरी के लिए सभी नट्स को इकट्ठा करके उन्हें एक-एक करके पेड़ के नीचे रखने के लिए न्यूनतम दूरी ढूंढना है। गिलहरी एक समय में अधिकतम एक नट ले जा सकती है और चार दिशाओं में आगे बढ़ सकती है - ऊपर, नीचे,

  1. C++ में आयत क्षेत्रफल II (Rectangle Area II) - ओवरलैपिंग आयतों का कुल क्षेत्रफल C++ में आयत क्षेत्रफल II (Rectangle Area II) - ओवरलैपिंग आयतों का कुल क्षेत्रफल

    समस्या विवरण हमें अक्ष-संरेखित (axis-aligned) आयतों की एक सूची दी गई है। प्रत्येक आयत rectangle[i] = {x1, y1, x2, y2} द्वारा दर्शाया गया है, जहां (x1, y1) निचले-बाएं कोने का बिंदु है और (x2, y2) ऊपरी-दाएं कोने का बिंदु है। हमें तल (plane) में सभी आयतों द्वारा कवर किए गए कुल क्षेत्रफल को ज्ञात करना