Annettu taulukko tehtävänä on kääntää matriisin käyttämättä vähennysmerkkiä '-' missään koodissasi. Matriisin kääntäminen ei ole vaikeaa, mutta tärkeintä on olla käyttämättä '-'-operaattoria.
java parannettu silmukkaSuositus: ratkaise se osoitteessa HARJOITELLA ' ensin ennen kuin siirryt ratkaisuun.
Kysyttiin: Kuusammakon haastattelu
Alla on erilaisia lähestymistapoja:
Tapa 1:
- Tallenna taulukon elementit kohtaan a vektori C++:ssa .
- Käännä sitten vektori päinvastaiseksi käyttämällä ennalta määritettyjä funktioita.
- Tallenna sitten käänteiset elementit taulukkoon takaisin.
Tapa 2:
- Tallenna taulukon elementit kohtaan a pino .
- Koska pino seuraa Last In First Out -toimintoa, voimme tallentaa elementtejä pinon yläosasta taulukkoon, joka on itse päinvastoin.
Tapa 3:
- Tässä menetelmässä ideana on käyttää negatiivista etumerkkiä, mutta tallentamalla se muuttujaan.
- Käyttämällä tätä lausetta x = (INT_MIN/INT_MAX) saamme -1 muuttujassa x.
- Koska arvoilla INT_MIN ja INT_MAX on samat arvot vain päinvastaisista etumerkeistä, ne jakamalla saadaan -1.
- Sitten 'x' voidaan käyttää indeksin pienentämiseen viimeisestä.
Toteutus:
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>
Lähtö
6 1 2 7 3 5
Aika monimutkaisuus: O(n)
Aputila: O(1)
zeenat aman näyttelijä
Tapa 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
Toteutus:
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>
Lähtö
6 1 2 7 3 5
Aika monimutkaisuus: O(n)
Aputila: O(1)
Luo tietokilpailu