我有一个圆圈,并且我有一定数字说11,12,13,14,15并且如果用户将输入传递为3
请参考上图。 情况1.我的号码是11,12,13,14,15,用户通过了3,所以从11开始,我将在13点获得3,所以我想删除13。
案例2:在再次删除13之后我应该从14开始。如果我从14开始,我将在11获得3并且我想删除11。
像这样我想继续并获得最终的数字。我试过但有些我在一个时间点失败了。请看我的代码。
public class CirularQue {
public static void main(String[] args) {
int[] array = new int[5];
int start = 4;
int rear = -1;
int front = -1;
find(array, start, rear, front);
}
private static void find(int[] array, int start, int rear, int front) {
int just = 4;
while (just < 5 && just > 0) {
for (int i = 0; i < array.length; i++) {
// Filling up rear and front;
if (rear == -1 && front == -1) {
rear = rear + 1;
front = front + 1;
}
// filling first time values
if (just == 4) {
array[i] = i + 1;
}
// skip zeros
if(just<4 && array[i]==0){
i++;
}
// Moving forward increase the front
front++;
// replace with zero if we start and front are equal
if (front == start && array[i] != 0) {
array[i] = 0;
front = 0;
}
// reset the value of i
if (i + 1 == array.length) {
i = -1;
just--;
}
}
}
}
}
请帮帮我怎么做?