题目:最小数字游戏
分析:
根据题中信息可知,AB每次都移除数组中最小的数字,但是每次在放进arr数组中时,由于B先放,A后放,所以导致,此时大的在前面,小的在后面,也就是说,原本数组从小到大排列,但是此时由于放入顺序,数组中隔两个数,两个数的值交换一次。
因此可以首先将数组按从小到大顺序排列,之后使用for循环,但是i++变成了i+2,目的是实现间隔两个数,在for之后的操作中,把i和i+1两个数的值交换,最后循环遍历,返回arr数组。
class Solution{
public int[] numberGame(int[] nums){
Arrays.sort(nums);
for(int i = 0;i < nums.length; i += 2){
int tmp = nums[i];
nums[i] = nums[i + 1];
nums[i+1] = tmp;
}
return nums;
}