private static int solve(List<Integer> list) {
        if (list == null || list.isEmpty())
            return 0;
        int[] a = new int[256];
        for (int i = 0; i < a.length; i++)
            a[i] = i;

        int skipSize = 0;
        int current = 0;
        for (int i = 0; i < list.size(); i++) {
            int length = list.get(i);
            int[] reversed = reverse(a, current, length);
            int k = current;
            for (int j = 0; j < reversed.length; j++) {
                a[k % a.length] = reversed[j];
                k++;
            }
            current += skipSize + length;
            skipSize++;
        }
        return a[0] * a[1];
    }
Why Did you create this class? what does it do?
 http://adventofcode.com/2017/day/14
src/adventofcode/KnotHash_10.java