找到圆圈中的最后一个数字

时间:2017-03-10 03:53:39

标签: java arrays algorithm sorting

我有一个圆圈,并且我有一定数字说11,12,13,14,15并且如果用户将输入传递为3 find the final member

请参考上图。 情况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--;
                }

            }



        }
    }
}

请帮帮我怎么做?

0 个答案:

没有答案