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

C++ . में दैनिक तापमान

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

उदाहरण के लिए

इनपुट-1: टी =[ 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. सी ++ में प्रक्रिया को मारें

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

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

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

  1. C++ में आयत क्षेत्र II

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