टीएल;डीआर
- समस्या: उत्पादन-स्तरीय दक्षता के साथ सीटीसीआई समस्या १०.११ में महारत हासिल करना।
- दृष्टिकोण: सीटीसीआई समस्या १०.११: O(N) समय में पूर्णांकों के एरे को बारी-बारी से आने वाले पीक्स और वैलीज़ के अनुक्रम में पुनर्गठित करें।
- जटिलता: इष्टतम समय और मेमोरी संतुलन।
यह लेख सीटीसीआई समस्या १०.११ का एक स्पष्ट और शुरुआती-अनुकूल विवरण प्रदान करता है। हम समस्या के कथन की जांच करते हैं, इष्टतम समाधान की तुलना करते हैं और जावा (जावा) कोड लिखते हैं।
१. वास्तविक जीवन की उपमा
सीटीसीआई समस्या १०.११ को वास्तविक जीवन में वस्तुओं को कुशलतापूर्वक व्यवस्थित करने की तरह सोचें। सही डेटा संरचना का चयन अनावश्यक पुनरावृत्तियों को समाप्त करता है।
२. स्पष्ट समस्या कथन
समस्या १०.११: सीटीसीआई समस्या १०.११: O(N) समय में पूर्णांकों के एरे को बारी-बारी से आने वाले पीक्स और वैलीज़ के अनुक्रम में पुनर्गठित करें।
३. इष्टतम दृष्टिकोण और कार्यान्वयन
public class PeaksAndValleys {
public static void sortValleyPeak(int[] array) {
for (int i = 1; i < array.length; i += 2) {
int maxIndex = maxIndex(array, i - 1, i, i + 1);
if (i != maxIndex) {
swap(array, i, maxIndex);
}
}
}
private static int maxIndex(int[] array, int a, int b, int c) {
int len = array.length;
int aValue = (a >= 0 && a < len) ? array[a] : Integer.MIN_VALUE;
int bValue = (b >= 0 && b < len) ? array[b] : Integer.MIN_VALUE;
int cValue = (c >= 0 && c < len) ? array[c] : Integer.MIN_VALUE;
int max = Math.max(aValue, Math.max(bValue, cValue));
if (aValue == max) return a;
else if (bValue == max) return b;
else return c;
}
private static void swap(int[] array, int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
४. समय और स्थान जटिलता (टाइम एंड स्पेस कॉम्प्लेक्सिटी)
| मीट्रिक | जटिलता | विवरण |
|---|---|---|
| समय जटिलता | ओ(एन) / ओ(लॉग एन) | डेटा के माध्यम से इष्टतम पास |
| स्थान जटिलता | ओ(१) / ओ(एन) | मेमोरी सीमाएं बनी रहीं |
५. सीमांत मामले (एज केसेस) और सारांश
कोडिंग इंटरव्यू में हमेशा सीमांत स्थितियों, शून्य (null) इनपुट और एरे आकार की सीमाओं की जांच करें।
