private Position determineQuadrant(Position topLeft, int size, Position missingPosition){
        for(int i = 0; i < 2; i++){
            for(int j = 0; j < 2; j++){
                if(missingPosition.x >= topLeft.x + i*size/2 && missingPosition.x <= topLeft.x + i*size/2 + size/2-1 &&
                        missingPosition.y >= topLeft.y + j*size/2 && missingPosition.y <= topLeft.y + j*size/2 + size/2 -1){
                        return new Position(topLeft.x+size/2 -1 +i, topLeft.y + size/2 - 1 + j);
                }
            }
        }
        throw new IllegalArgumentException("Something went wrong in determining quadrant");
    }
http://www.geeksforgeeks.org/divide-and-conquer-set-6-tiling-problem/
Test cases
Size of matrix is at least 2 and power of 2 always
Missing point could be on edges
Missing point could be in any of 4 quadrants
src/com/interview/multiarray/TilingProblem.java