private void updateMatrix(char matrix[][], Position topLeft, Position missingPosition){
        for(int i=topLeft.x; i < topLeft.x + 2; i++){
            for(int j=topLeft.y; j < topLeft.y + 2; j++){
                if(i == missingPosition.x && j == missingPosition.y){
                    continue;
                }
                matrix[i][j] = tileCount;
            }
        }
        tileCount++;
    }
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