logo

코드 어디에서나 빼기 기호 '-'를 사용하지 않고 배열을 뒤집습니다.

배열이 주어지면 작업은 다음과 같습니다. 배열을 뒤집다 코드 어디에서나 빼기 기호 '-'를 사용하지 않고. 배열을 뒤집는 것은 어렵지 않지만 가장 중요한 것은 '-' 연산자를 사용하지 않는 것입니다.

추천 : '에서 해결해주세요 관행 ' 먼저 솔루션으로 넘어가기 전에.

질문 날짜: 달개구리 인터뷰

다음은 다양한 접근 방식입니다. 



문자를 문자열로 변환 자바

방법 1: 

  1. 배열 요소를 C++의 벡터 . 
  2. 그런 다음 미리 정의된 함수를 사용하여 벡터를 반전시킵니다. 
  3. 그런 다음 반전된 요소를 다시 배열에 저장합니다.

방법 2: 

  1. 배열 요소를 스택 . 
  2. 스택은 후입선출(Last In First Out)을 따르므로 스택 상단의 요소를 역방향 방식으로 배열에 저장할 수 있습니다. 

방법 3:  

json 형식의 예
  1. 이 방법에서는 음수 기호를 사용하되 이를 변수에 저장하는 것이 아이디어입니다. 
  2. 이 명령문 x = (INT_MIN/INT_MAX)를 사용하면 변수 x에서 -1을 얻습니다. 
  3. INT_MIN과 INT_MAX는 반대 부호만 있는 동일한 값을 가지므로 나누면 -1이 됩니다. 
  4. 그런 다음 'x'를 사용하여 마지막 인덱스부터 인덱스를 감소시킬 수 있습니다.

구현:

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> 

산출
6 1 2 7 3 5 

시간 복잡도: 에)
보조 공간: O(1)

방법 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 

구현:

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> 

산출
6 1 2 7 3 5 

시간 복잡도: O(n) 
보조 공간: O(1)

 

CSS 랩 텍스트
퀴즈 만들기