• + 0 comments

    Java

    public static List<String> cavityMap(List<String> grid) {
            for (int i = 1; i < grid.size() - 1; i++) {
                for (int j = 1; j < grid.get(i).length() - 1; j++) {
                    int currentDigit = Character.getNumericValue(grid.get(i).charAt(j));
                    int upDigit = Character.getNumericValue(grid.get(i-1).charAt(j));
                    int downDigit = Character.getNumericValue(grid.get(i+1).charAt(j));
                    int leftDigit = Character.getNumericValue(grid.get(i).charAt(j-1));
                    int rightDigit = Character.getNumericValue(grid.get(i).charAt(j+1));
                    if (currentDigit > upDigit 
                        && currentDigit > downDigit 
                        && currentDigit > leftDigit
                        && currentDigit > rightDigit) {
                            StringBuilder newRow = new StringBuilder(grid.get(i));
                            newRow.setCharAt(j, 'X');
                            grid.set(i, newRow.toString());
                    }
                }
            }
            return grid;
        }