Minimum Refills from A to B
Your algorithm looks fine, and efficient. Strictly speaking, since the stations are sorted, you could use binary search to find the next station to refill, by looking for the insertion point of lastRefill + 400. This could speed things up if gas stations are extremely dense. But that's unrealistic anyway, so I think no need to bother, your simple implementation is fine.

The implementation is a bit hard to read because of the names. I recommend these renames:


numbers -> stations
refillAt -> capacity
numOfRefills -> refills


The writing style is also too compact and hard to read.
It's recommended to put spaces around operators.

Lastly, the endpoint variable is redundant, stations.length is just as easy to understand.

With the renames and the formatting changed, the method becomes:

static int getMinRefill(int[] stations, int capacity) {
    int lastRefill = 0;
    int current = 0;
    int refills = 0;

    while (current &lt; stations.length - 1) {

        if (stations[current + 1] - stations[current] &gt; capacity) {
            return 0;
        }

        if (lastRefill + capacity &lt; stations[current + 1]) {
            lastRefill = stations[current];
            refills++;
        }

        current++;
    }

    return refills;
}