- एक्ज़िक्यूटर्स
-
सीखें
Python सीखें चलने योग्य उदाहरण, NumPy, pandas और बहुत कुछ AI सीखेंन्यूरल नेटवर्क, ML और LLM शुरू से C और C++ सीखें पॉइंटर, मेमोरी, STL और आधुनिक C++ C# सीखेंC# मूल बातें, OOP, LINQ, async और .NET अभ्यास Python एल्गोरिदम खोज, सॉर्टिंग, रिकर्शन और विज़ुअलाइज़र O(n) C और C++ एल्गोरिदम C और C++ कार्यान्वयन की तुलना करें
- चैलेंजनया
async/await के साथ आप कई tasks start कर सकते हैं और उन्हें एक ही समय पर चलने दे सकते हैं. SemaphoreSlim अक्सर इस बात को limit करता है कि एक साथ कितने चलेंगे.
0 से n − 1 तक numbered tasks को durations[i] time units लगते हैं. समय 0 पर, index order में, जितने tasks limit allow करे उतने start करें. जब भी tasks finish हों, उन्हें record करें (अगर कई एक ही moment पर finish हों, तो lower index first) और तुरंत next waiting tasks को, index order में, free slots भरने के लिए start करें.
parallel_task_order(durations, limit) implement करें.
Input
durations: Each task कितनी देर लेता है.
limit: एक ही समय पर चलने वाले tasks की maximum संख्या.
Output
Return the task indices in the order they finish.
सीमाएँ
1 ≤ n ≤ 100,000
1 ≤ durations[i] ≤ 10^6; 1 ≤ limit ≤ n
उदाहरण
उदाहरण 1
इनपुट:
limit = 2
durations = [4, 2, 3, 1]
अपेक्षित आउटपुट:
[1, 0, 2, 3]
व्याख्या
Tasks 0 और 1 start होते हैं. Task 1 2 पर end होता है और task 2 start होता है (5 पर ends). Task 0 4 पर end होता है और task 3 start होता है (5 पर ends). Tasks 2 और 3 साथ finish करते हैं, lower index first: [1, 0, 2, 3].
उदाहरण 2
इनपुट:
limit = 3
durations = [3, 1, 2]
अपेक्षित आउटपुट:
[1, 2, 0]
व्याख्या
All tasks एक साथ run होते हैं और 1, 2 और 3 पर finish होते हैं: [1, 2, 0].
संदर्भ
-
उदाहरण 1 नहीं चलाया गयाइनपुट:
limit = 2 durations = [4, 2, 3, 1]अपेक्षित आउटपुट:[1, 0, 2, 3]आपका आउटपुट -
उदाहरण 2 नहीं चलाया गयाइनपुट:
limit = 3 durations = [3, 1, 2]अपेक्षित आउटपुट:[1, 2, 0]आपका आउटपुट
सबमिट करने पर 4 छुपे हुए टेस्ट भी चलेंगे।
ऑनलाइन C++ कंपाइलर और डीबगर
सर्वर मोड GDB में ब्रेकपॉइंट, वेरिएबल और स्टेप कंट्रोल के साथ C++ डीबग करें।
🚀 2,393,433 कुल निष्पादन (1,059 इस महीने)
कोडिंग चैलेंज के साथ C++ का अभ्यास करें
सीधे इस एडिटर में प्रैक्टिकल समस्याएँ हल करें: सैंपल टेस्ट चलाएँ, सबमिट करें, और AI कोड रिव्यू पाएं।
C/C++ सीखें और अभ्यास करें
चलने वाले पाठों वाला लर्निंग पाथ अपनाएँ, फिर कोडिंग चैलेंज से खुद को परखें।
💻 इस C++ ऑनलाइन एक्जीक्यूटर के बारे में
CodeUtility C++ Executor आपको ब्राउज़र में ही C++ कोड लिखने और चलाने देता है - कोई इंस्टॉलेशन या कंपाइलर सेटअप की जरूरत नहीं। यह एक सुरक्षित सैंडबॉक्स द्वारा संचालित है जो असली C++ मानकों C++11, C++14, C++17 से लेकर नवीनतम संस्करण तक सपोर्ट करता है।
यह टूल क्लाउड में चल रहे असली C++ कंपाइलर का उपयोग करके आपके कोड को कंपाइल और रन करता है, जिससे अलग-अलग संस्करणों में सटीक और एकसमान व्यवहार सुनिश्चित होता है। आप C++ की मूल अवधारणाओं जैसे variables, functions, loops, conditionals, और object-oriented programming के साथ बेझिझक प्रयोग कर सकते हैं।
चाहे आप इंटरव्यू की तैयारी कर रहे हों, आधुनिक C++ फीचर्स सीख रहे हों, या किसी एल्गोरिदम के लॉजिक को परखना चाहते हों, CodeUtility C++ Executor किसी भी डिवाइस से तुरंत कोड चलाने के लिए एक सरल लेकिन शक्तिशाली वातावरण प्रदान करता है।
सिर्फ़ एक कोड रनर से कहीं अधिक
एक ही एक्ज़ीक्यूटर में मल्टी-फ़ाइल एडिटर, अलग-थलग निष्पादन टर्मिनल, रनटाइम-विशिष्ट लाइब्रेरी, स्थायी वर्कस्पेस, साझाकरण और रीयल-टाइम सहयोग का उपयोग करें।
इस एक्ज़ीक्यूटर का उपयोग कैसे करें?
रनटाइम चुनें, फ़ाइल खोलें या बनाएँ, अपना कोड लिखें और चलाएँ चुनें। आउटपुट टर्मिनल में दिखाई देता है। साइन-इन उपयोगकर्ता वर्कस्पेस में फ़ाइलें रख सकते हैं, लाइब्रेरी इंस्टॉल कर सकते हैं और शेयर के माध्यम से सहयोग कर सकते हैं।
- एक संस्करण चुनें और वर्तमान फ़ाइल संपादित करें या वर्कस्पेस की दूसरी फ़ाइल खोलें।
- कोड चलाएँ, माँगे जाने पर टर्मिनल में इनपुट दें और सहेजा गया रन इतिहास देखें।
- जब कार्य के लिए एक से अधिक कोड अंश चाहिए, तो लाइब्रेरी, वर्कस्पेस टूल, शेयरिंग और चैट का उपयोग करें।
💡 C++ की बुनियादी बातें और उदाहरण जिन्हें आप ऊपर आज़मा सकते हैं
1. वेरिएबल्स और कॉन्स्टेंट्स घोषित करना
C++ में हर वेरिएबल का टाइप घोषित करना जरूरी है। ऐसे मान परिभाषित करने के लिए const का उपयोग करें जिन्हें initialization के बाद बदला नहीं जा सकता।
int age = 30;
double pi = 3.14159;
char grade = 'A';
std::string name = "Alice";
bool isActive = true;
// कॉन्स्टेंट्स
const int MAX_USERS = 100;
const std::string COMPANY = "CodeUtility";
// const को बदलने की कोशिश करने पर compile-time त्रुटि होगी
// MAX_USERS = 200; // ❌ त्रुटि
2. शर्तें (if / switch)
ब्रांचिंग के लिए if, else if, else का उपयोग करें। कई मानों के लिए switch का उपयोग करें।
int x = 2;
if (x == 1) {
std::cout << "एक\n";
} else if (x == 2) {
std::cout << "दो\n";
} else {
std::cout << "अन्य\n";
}
// स्विच-केस
switch (x) {
case 1:
std::cout << "एक\n";
break;
case 2:
std::cout << "दो\n";
break;
default:
std::cout << "अन्य\n";
}
3. लूप्स
for, while, और do-while का उपयोग कोड ब्लॉक को दोहराने के लिए करें।
for (int i = 0; i < 3; i++) {
std::cout << i << "\n";
}
int n = 3;
while (n > 0) {
std::cout << n << "\n";
n--;
}
4. ऐरे
ऐरे एक ही प्रकार के कई एलिमेंट्स स्टोर करते हैं।
int numbers[3] = {10, 20, 30};
std::cout << numbers[1] << "\n";
5. ऐरे/वेक्टर मैनिपुलेशन
डायनेमिक ऐरे के लिए std::vector का उपयोग करें।
#include <vector>
std::vector nums = {1, 2, 3};
nums.push_back(4);
nums.pop_back();
for (int n : nums) {
std::cout << n << " ";
}
6. कंसोल इनपुट/आउटपुट
इनपुट के लिए std::cin और आउटपुट के लिए std::cout का उपयोग करें।
std::string name;
std::cout << "अपना नाम दर्ज करें: ";
std::cin >> name;
std::cout << "नमस्ते, " << name << "\n";
7. फ़ंक्शन्स
फ़ंक्शन्स पुन: प्रयोज्य लॉजिक को समूहित करते हैं। पैरामीटर्स और रिटर्न टाइप्स का उपयोग करें।
int add(int a, int b) {
return a + b;
}
std::cout << add(3, 4);
8. मैप्स
std::map डिक्शनरी की तरह कुंजी-मूल्य जोड़े स्टोर करता है।
#include <map>
std::map ages;
ages["Alice"] = 30;
std::cout << ages["Alice"];
9. एक्सेप्शन हैंडलिंग
रनटाइम त्रुटियों को संभालने के लिए try और catch का उपयोग करें।
try {
throw std::runtime_error("त्रुटि हुई");
} catch (const std::exception& e) {
std::cout << e.what();
}
10. फ़ाइल I/O
फ़ाइलों से पढ़ने और लिखने के लिए fstream का उपयोग करें।
#include <fstream>
std::ofstream out("file.txt");
out << "नमस्ते फ़ाइल";
out.close();
std::ifstream in("file.txt");
std::string line;
getline(in, line);
std::cout << line;
in.close();
11. स्ट्रिंग मैनिपुलेशन
C++ स्ट्रिंग्स length(), substr(), और find() जैसी मेथड्स सपोर्ट करती हैं।
std::string text = "Hello World";
std::cout << text.length();
std::cout << text.substr(0, 5);
std::cout << text.find("World");
12. क्लासेस और ऑब्जेक्ट्स
C++ क्लासेस के माध्यम से ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग सपोर्ट करता है।
class Person {
public:
std::string name;
Person(std::string n) : name(n) {}
void greet() { std::cout << "नमस्ते, मैं " << name; }
};
Person p("Alice");
p.greet();
13. पॉइंटर्स
एक पॉइंटर किसी दूसरे वेरिएबल के मेमोरी ऐड्रेस को स्टोर करता है। ऐड्रेस पाने के लिए & का उपयोग करें,
और उस ऐड्रेस पर मौजूद मान तक पहुँचने के लिए * (डिरेफरेंस) करें।
int x = 10;
int* ptr = &x;
std::cout << "x का मान: " << x << "\n";
std::cout << "x का ऐड्रेस: " << ptr << "\n";
std::cout << "पॉइंटर से मान: " << *ptr << "\n";
// पॉइंटर के जरिए x को बदलें
*ptr = 20;
std::cout << "अपडेटेड x: " << x << "\n";
🐞 %{language} कोड ऑनलाइन डीबग कैसे करें
ऑनलाइन %{language} डीबगर से कंपाइलर या IDE इंस्टॉल किए बिना रनटाइम और लॉजिक त्रुटियाँ खोजें। सर्वर मोड debug symbols के साथ कंपाइल करता है और प्रोग्राम को GDB में चलाता है।
- लाइन नंबर के पास ब्रेकपॉइंट लगाएँ।
- कंपाइल करके पहले ब्रेकपॉइंट पर रुकने के लिए Debug चुनें।
- वर्तमान लाइन, call stack और वेरिएबल देखें।
- Continue, Step Over, Step Into या Step Out उपयोग करें।
- सत्र समाप्त करने के लिए Stop चुनें।
एक छोटे दोहराए जा सकने वाले उदाहरण से शुरू करें और अनपेक्षित व्यवहार से ठीक पहले ब्रेकपॉइंट लगाएँ।