Bir dizi verildiğinde görev diziyi tersine çevir Kodunuzun herhangi bir yerinde '-' çıkarma işaretini kullanmadan. Bir diziyi tersine çevirmek zor değildir ancak asıl önemli olan '-' operatörünü kullanmamaktır.
örnekÖnerilen: Lütfen ' tarihinde çözün PRATİK ' Çözüme geçmeden önce ilk olarak.
Şurada soruldu: Aykurbağası Röportajı
Aşağıda farklı yaklaşımlar yer almaktadır:
Yöntem 1:
- Dizi öğelerini bir C++'da vektör .
- Daha sonra önceden tanımlanmış fonksiyonları kullanarak vektörü tersine çevirin.
- Daha sonra ters çevrilmiş elemanları diziye geri kaydedin.
Yöntem 2:
- Dizi öğelerini bir yığın .
- Yığın Son Giren İlk Çıkar'ı takip ettiğinden, yığının en üstündeki öğeleri ters bir şekilde kendisi olacak diziye depolayabiliriz.
Yöntem 3:
- Bu yöntemde amaç negatif işareti kullanmak ama onu bir değişkene kaydetmektir.
- Bu x = (INT_MIN/INT_MAX) ifadesini kullanarak x değişkeninde -1 elde ederiz.
- INT_MIN ve INT_MAX sadece zıt işaretli aynı değerlere sahip olduğundan, bunları bölmek -1 değerini verecektir.
- Daha sonra indeksi sondan azaltmak için 'x' kullanılabilir.
Uygulama:
C++// C++ program to reverse an array without // using '-' sign #include using namespace std; // Function to reverse array void reverseArray(int arr[] int n) { // Trick to assign -1 to a variable int x = (INT_MIN / INT_MAX); // Reverse array in simple manner for (int i = 0; i < n / 2; i++) // Swap ith index value with (n-i-1)th // index value swap(arr[i] arr[n + (x * i) + x]); } // Drivers code int main() { int arr[] = { 5 3 7 2 1 6 }; int n = sizeof(arr) / sizeof(arr[0]); reverseArray(arr n); // print the reversed array for (int i = 0; i < n; i++) cout << arr[i] << ' '; return 0; }
Java // Java program to reverse an array without // using '-' sign class GFG { // Function to reverse array static void reverseArray(int arr[] int n) { // Trick to assign -1 to a variable int x = (Integer.MIN_VALUE / Integer.MAX_VALUE); // Reverse array in simple manner for (int i = 0; i < n / 2; i++) // Swap ith index value with (n-i-1)th // index value swap(arr i n + (x * i) + x); } static int[] swap(int[] arr int i int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; return arr; } // Drivers code public static void main(String[] args) { int arr[] = { 5 3 7 2 1 6 }; int n = arr.length; reverseArray(arr n); // print the reversed array for (int i = 0; i < n; i++) System.out.print(arr[i] + ' '); } } // This code has been contributed by 29AjayKumar
Python3 # Python program to reverse an array without # using '-' sign # Function to reverse array def reverseArray(arr n): import sys # Trick to assign - 1 to a variable x = -sys.maxsize // sys.maxsize # Reverse array in simple manner for i in range(n//2): # Swap ith index value with (n-i-1)th # index value arr[i] arr[n + (x*i) + x] = arr[n + (x*i) + x] arr[i] # Driver code if __name__ == '__main__': arr = [5 3 7 2 1 6] n = len(arr) reverseArray(arr n) # print the reversed array for i in range(n): print(arr[i] end=' ') # This code is contributed by # sanjeev2552
C# // C# program to reverse an array without // using '-' sign using System; class GFG { // Function to reverse array static void reverseArray(int[] arr int n) { // Trick to assign -1 to a variable int x = (int.MinValue / int.MaxValue); // Reverse array in simple manner for (int i = 0; i < n / 2; i++) // Swap ith index value with (n-i-1)th // index value swap(arr i n + (x * i) + x); } static int[] swap(int[] arr int i int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; return arr; } // Drivers code public static void Main() { int[] arr = { 5 3 7 2 1 6 }; int n = arr.Length; reverseArray(arr n); // print the reversed array for (int i = 0; i < n; i++) Console.Write(arr[i] + ' '); } } /* This code contributed by PrinciRaj1992 */
PHP // PHP program to reverse an array without // using '-' sign // Function to reverse array function reverseArray(&$arr $n) { // Trick to assign -1 to a variable $x = (PHP_INT_MIN / PHP_INT_MAX); // Reverse array in simple manner for ($i = 0; $i < $n / 2; $i++) // Swap ith index value with (n-i-1)th // index value swap($arr $i $n + ($x * $i) + $x); } function swap(&$arr $i $j) { $temp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $temp; return $arr; } // Drivers code $arr = array( 5 3 7 2 1 6 ); $n = sizeof($arr); reverseArray($arr $n); // print the reversed array for ($i = 0; $i < $n; $i++) echo($arr[$i] . ' '); // This code is contributed by Code_Mech JavaScript <script> //javascript program to reverse an array without // using '-' sign // Function to reverse array function reversearray(arrn) { // Trick to assign -1 to a variable let x = parseInt(-2147483648 / 2147483647 10); // Reverse array in simple manner for (let i = 0; i < parseInt(n / 2 10); i++) { // Swap ith index value with (n-i-1)th // index value let temp = arr[i]; arr[i] = arr[n + (x * i) + x]; arr[n + (x * i) + x] = temp; } } let arr = [ 5 3 7 2 1 6 ]; let n = arr.length; reversearray(arr n); // print the reversed array for (let i = 0; i < n; i++) document.write(arr[i] +' '); // This code is contributed by vaibhavrabadiya117. </script>
Çıkış
6 1 2 7 3 5
Zaman Karmaşıklığı: Açık)
Yardımcı Alan: O(1)
Yöntem 4:
In this method 4 the idea is to use bitwise operator to implement subtraction i.e. A - B = A + ~B + 1 so i-- can be written as i = i +~1 +1
Uygulama:
C++// C++ program to reverse an array without // using '-' sign #include using namespace std; // Function to reverse array void reverseArray(int arr[] int n) { // Reverse array in simple manner for (int i = 0; i < n / 2; i++) // Swap ith index value with (n-i-1)th // index value // Note : A - B = A + ~B + 1 // So n - i = n + ~i + 1 then // n - i - 1 = (n + ~i + 1) + ~1 + 1 swap(arr[i] arr[(n + ~i + 1) + ~1 + 1]); } // Driver code int main() { int arr[] = { 5 3 7 2 1 6 }; int n = sizeof(arr) / sizeof(arr[0]); reverseArray(arr n); // print the reversed array for (int i = 0; i < n; i++) cout << arr[i] << ' '; return 0; }
Java // Java program to reverse an array without // using '-' sign import java.util.Arrays; class GFG { // Function to reverse array static void reverseArray(int arr[] int n) { // Reverse array in simple manner for (int i = 0; i < n / 2; i++) // Swap ith index value with (n-i-1)th // index value // Note : A - B = A + ~B + 1 // So n - i = n + ~i + 1 then // n - i - 1 = (n + ~i + 1) + ~1 + 1 { swap(arr i (n + ~i + 1) + ~1 + 1); } } static int[] swap(int[] arr int i int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; return arr; } // Driver code public static void main(String args[]) { int arr[] = { 5 3 7 2 1 6 }; int n = arr.length; reverseArray(arr n); // print the reversed array for (int i = 0; i < n; i++) { System.out.print(arr[i] + ' '); } } } // This code contributed by Rajput-Ji
Python3 # Python program to reverse an array without # using '-' sign # Function to reverse array def reverseArray(arr n): # Reverse array in simple manner for i in range(n//2): # Swap ith index value with (n-i-1)th # index value # Note : A - B = A + ~B + 1 # So n - i = n + ~i + 1 then # n - i - 1 = (n + ~i + 1) + ~1 + 1 arr[i] arr[(n + ~i + 1) + ~1 + 1] = arr[(n + ~i + 1) + ~1 + 1]arr[i] # Driver code arr = [ 5 3 7 2 1 6 ] n = len(arr) reverseArray(arr n) # print the reversed array for i in range(n): print(arr[i]end=' ') # This code is contributed by ankush_953
C# // C# program to reverse an array without // using '-' sign using System; class GFG { // Function to reverse array static void reverseArray(int[] arr int n) { // Reverse array in simple manner for (int i = 0; i < n / 2; i++) // Swap ith index value with (n-i-1)th // index value // Note : A - B = A + ~B + 1 // So n - i = n + ~i + 1 then // n - i - 1 = (n + ~i + 1) + ~1 + 1 { swap(arr i (n + ~i + 1) + ~1 + 1); } } static int[] swap(int[] arr int i int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; return arr; } // Driver code public static void Main(String[] args) { int[] arr = { 5 3 7 2 1 6 }; int n = arr.Length; reverseArray(arr n); // print the reversed array for (int i = 0; i < n; i++) { Console.Write(arr[i] + ' '); } } } // This code has been contributed by 29AjayKumar
PHP // PHP program to reverse an array without // using '-' sign // Function to reverse array function reverseArray(&$arr $n) { // Reverse array in simple manner for ($i = 0; $i < $n / 2; $i++) // Swap ith index value with (n-i-1)th // index value // Note : A - B = A + ~B + 1 // So n - i = n + ~i + 1 then // n - i - 1 = (n + ~i + 1) + 1 + 1 { swap($arr $i ($n + ~$i + 1) + ~1 + 1); } } function swap(&$arr $i $j) { $temp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $temp; return $arr; } // Driver code { $arr = array( 5 3 7 2 1 6 ); $n = sizeof($arr); reverseArray($arr $n); // print the reversed array for ($i = 0; $i < $n; $i++) { echo($arr[$i] . ' '); } } // This code contributed by Code_Mech JavaScript <script> // Javascript program to reverse an array without using '-' sign // Function to reverse array function reverseArray(arr n) { // Reverse array in simple manner for (let i = 0; i < parseInt(n / 2 10); i++) // Swap ith index value with (n-i-1)th // index value // Note : A - B = A + ~B + 1 // So n - i = n + ~i + 1 then // n - i - 1 = (n + ~i + 1) + ~1 + 1 { swap(arr i (n + ~i + 1) + ~1 + 1); } } function swap(arr i j) { let temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; return arr; } let arr = [ 5 3 7 2 1 6 ]; let n = arr.length; reverseArray(arr n); // print the reversed array for (let i = 0; i < n; i++) { document.write(arr[i] + ' '); } // This code is contributed by mukesh07. </script>
Çıkış
6 1 2 7 3 5
Zaman Karmaşıklığı: O(n)
Yardımcı Alan: O(1)
Java dizisine dize
Test Oluştur