DEV Community

Cover image for Common Interview Question: Swapping Two Numbers Without a Temporary Variable in Java
Arshi Saxena
Arshi Saxena

Posted on • Edited on

Common Interview Question: Swapping Two Numbers Without a Temporary Variable in Java

Swapping two numbers is a common task in programming interviews, and there are various ways to achieve this. One interesting method is to swap two numbers without using a temporary variable. This technique is not only clever but also helps in understanding arithmetic operations in Java. In this article, we will explore this method and provide a sample code implementation.

Understanding the Concept

The idea behind swapping two numbers without a temporary variable is based on basic arithmetic operations. The core idea is to use addition and subtraction to perform the swap. Here's how it works:

  1. Add the two numbers and store the result in one of the variables.
  2. Subtract the second number from the sum to get the first number in the second variable.
  3. Subtract the new value of the second variable from the sum to get the first number in the first variable.

Code Implementation

Here's a simple Java program that demonstrates this method:

package basics;
public class SwapTwoNumbersWithoutTemp {
    private void swapNumbers(int a, int b) {
        a = a + b; // Step 1: a becomes the sum of a and b
        b = a - b; // Step 2: b becomes the original value of a
        a = a - b; // Step 3: a becomes the original value of b
        System.out.println("a = " + a + " b = " + b);
    }
    public static void main(String[] args) {
        SwapTwoNumbersWithoutTemp swap = new SwapTwoNumbersWithoutTemp();
        swap.swapNumbers(5, 6);
    }
}
Enter fullscreen mode Exit fullscreen mode

Explanation of the Code

  1. Method Definition: The method swapNumbers(int a, int b) takes two integer parameters.
  2. Step 1: a = a + b; — This adds both numbers and stores the result in a.
  3. Step 2: b = a - b; — This effectively assigns the original value of a to b.
  4. Step 3: a = a - b; — Finally, this assigns the original value of b to a.
  5. Output: The swapped values are printed to the console.

Conclusion

Swapping two numbers without a temporary variable is an efficient and clever technique often asked in interviews. This method not only saves memory but also showcases your understanding of basic arithmetic operations. It can be a great addition to your coding toolbox, especially for interview preparation.

Feel free to experiment with this code and test different pairs of numbers to see how the method performs!

Related Posts

Happy Coding!

Top comments (2)

Collapse
 
wpollock profile image
Wayne Pollock

Nice article. Note this can be done with bitwise XOR as well.

Collapse
 
arshisaxena26 profile image
Arshi Saxena

Absolutely! XOR would be the most efficient solution for this program.

I'll be writing a separate post on bitwise operations first, and once that's done, I'll update this post to include the XOR solution for swapping numbers. 🔄

Thanks for the suggestion! 🙌