数组中两数交换优化方法

有一个int类型的数组nums,现需要交换第i个和第j个元素值?

直接交换法:
int temp = nums[j];
nums[j] = nums[i];
nums[i] = temp;
不借助临时变量,使用加法操作来优化:
nums[i] = nums[i] + nums[j];
nums[j] = nums[i] - nums[j];
nums[i] = nums[i] - nums[j];
简化到两个int变量a,b,交换他们的值:
a = a + b;
b = a - b;
a = a - b;

你可能感兴趣的:(算法)