समस्या के समाधान के दो तरीके हैं:
1. अंतरिक्ष में एक सरणी उल्टा।
चरण 1. शुरू और अंत सूचकांक पर तत्वों को स्वैप करें।
चरण 2. प्रारंभ सूचकांक में वृद्धि अंत सूचकांक में वृद्धि।
चरण 3. Iterate चरण 1 और चरण 2 प्रारंभ करें इंडेक्स <अंत इंडेक्स तक
इसके लिए, समय जटिलता O (n) होगी और अंतरिक्ष जटिलता O (1) होगी
अंतरिक्ष में एक सरणी को उलटने के लिए नमूना कोड इस तरह है:
public static int[] reverseAnArrayInSpace(int[] array) {
int startIndex = 0;
int endIndex = array.length - 1;
while(startIndex < endIndex) {
int temp = array[endIndex];
array[endIndex] = array[startIndex];
array[startIndex] = temp;
startIndex++;
endIndex--;
}
return array;
}
2. सहायक सरणी का उपयोग करके एक सरणी को उल्टा करें।
चरण 1. दिए गए सरणी के बराबर आकार का एक नया सरणी बनाएं।
चरण 2. अंत इंडेक्स से शुरू होने वाले दिए गए एरे इंडेक्स से शुरू होने वाले नए एरे में तत्वों को डालें।
इसके लिए, समय जटिलता O (n) होगी और अंतरिक्ष जटिलता O (n) होगी
सहायक सरणी के साथ एक सरणी को उलटने के लिए नमूना कोड इस तरह है:
public static int[] reverseAnArrayWithAuxiliaryArray(int[] array) {
int[] reversedArray = new int[array.length];
for(int index = 0; index < array.length; index++) {
reversedArray[index] = array[array.length - index -1];
}
return reversedArray;
}
इसके अलावा, हम ऐसा करने के लिए Java से कलेक्शंस API का उपयोग कर सकते हैं।
संग्रह एपीआई आंतरिक रूप से अंतरिक्ष दृष्टिकोण में एक ही रिवर्स का उपयोग करता है।
संग्रह एपीआई का उपयोग करने के लिए नमूना कोड इस प्रकार है:
public static Integer[] reverseAnArrayWithCollections(Integer[] array) {
List<Integer> arrayList = Arrays.asList(array);
Collections.reverse(arrayList);
return arrayList.toArray(array);
}