校招笔试遇到一道算法题

现有一个数组A,对于A中的每个元素A[i],都可以进行+K或者-K的操作(每个元素仅能选择加或减一-次)。
在这个操作后,我们将得到许多不同版本的数组B。请找出所有可能的B数组中,数组中最大值与最小值里最小的差值。
输入描述:
每组测试数据的第一行为一个整数K ( 0<=K<=10000),第二行为数组A ( 1 <= A.length <= 10000, 0 <=A[i] <= 10000 )
输出描述:
对每组测试数据,在单独的一行里输出最小的差值。
输入样例:
3
1 3 6
输出样例:
3

想了很久,没想到怎么实现+k-K,求各位告知

+k : A[i] += k;
-k : A[i] -= k;

用随机数,范围在0-1,如果是0的时候,数组中该元素就+k,如果是1的时候,数组中该元素就是-k。所有的元素都加减一遍后再遍历求最大值最小值,然后一减就出答案了。