दूसरा सबसे बड़ा मान
ऐरे का दूसरा सबसे बड़ा अलग मान ढूँढें।
दूसरा सबसे बड़ा मान क्या है?
दो सबसे अच्छे मान याद रखने से पूरे ऐरे को सॉर्ट नहीं करना पड़ता।
महत्वपूर्ण बातें
- Compiler warnings चालू करके सभी ठीक करें।
- हर value का type और lifetime समझें।
- Input और array bounds validate करें।
C और C++ code examples
main.c
#include <limits.h>
#include <stdio.h>
int main(void) {
int values[] = {7, 23, 12, 23, 9}, first = INT_MIN, second = INT_MIN;
// Maintain the two largest distinct values.
for (int i = 0; i < 5; ++i) { int value = values[i]; if (value > first) { second = first; first = value; } else if (value > second && value != first) second = value; }
printf("second=%d\n", second);
}
second=12
C++
main.cpp
#include <iostream>
#include <limits>
#include <vector>
int main() {
std::vector values{7, 23, 12, 23, 9}; int first = std::numeric_limits<int>::min(), second = first;
// Maintain the two largest distinct values.
for (int value : values) { if (value > first) { second = first; first = value; } else if (value > second && value != first) second = value; }
std::cout << "second=" << second << '\n';
}
second=12
C और C++ की तुलना
नया अधिकतम मिलने पर दोनों अपडेट करें, और जब मान दोनों के बीच हो तो सिर्फ़ दूसरा।
C
C छोटे procedural APIs और representation details स्पष्ट करता है।
C++
C++ low-level model रखकर safer library types जोड़ता है।
अभ्यास
दोनों versions चलाकर बदलें और language guarantees की तुलना करें।
- Invalid और boundary inputs जोड़ें।
- -Wall -Wextra -Wpedantic से compile करें।
- Declarations और implementation अलग करें।
चैलेंज से अभ्यास करें
इस पाठ में सीखी बात से एक असली समस्या हल करें। हर चैलेंज ब्राउज़र में चलता है, तुरंत टेस्ट और AI रिव्यू के साथ।
सभी चैलेंज