সমস্যার সমাধানের জন্য দুটি উপায় রয়েছে:
1. মহাকাশে একটি অ্যারে বিপরীত।
পদক্ষেপ 1. শুরুতে এবং শেষের সূচকে উপাদানগুলিকে অদলবদল করুন।
পদক্ষেপ 2. প্রারম্ভ সূচক হ্রাস শেষ সূচক বৃদ্ধি।
পদক্ষেপ 3. সূচনা <শেষ সূচক শুরু হওয়া অবধি পদক্ষেপ 1 এবং দ্বিতীয় ধাপ Iterate
এর জন্য সময় জটিলতা ও (এন) হবে এবং স্থান জটিলতা হবে ও (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. শেষ সূচী থেকে শুরু করা সূচি থেকে শুরু সূচক থেকে শুরু করে নতুন অ্যারেতে উপাদান সন্নিবেশ করান।
এর জন্য সময় জটিলতা ও (এন) হবে এবং স্থান জটিলতা ও (এন) হবে
সহায়ক অ্যারের সাথে কোনও অ্যারের বিপরীত করার জন্য নমুনা কোডটি হ'ল:
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;
}
এছাড়াও, আমরা এটি করতে জাভা থেকে সংগ্রহগুলি API ব্যবহার করতে পারি।
সংগ্রহের এপিআই অভ্যন্তরীণভাবে স্থান ব্যবস্থায় একই বিপরীত ব্যবহার করে।
সংগ্রহগুলি API ব্যবহারের জন্য নমুনা কোডটি হ'ল:
public static Integer[] reverseAnArrayWithCollections(Integer[] array) {
List<Integer> arrayList = Arrays.asList(array);
Collections.reverse(arrayList);
return arrayList.toArray(array);
}