Stay button --- 2020.3.15

695. The maximum area of ​​the island

//DFS
class Solution {
    public int maxAreaOfIsland(int[][] grid) {
        int max = 0;
        for(int i = 0; i < grid.length; i++){
            for(int j = 0; j < grid[0].length; j++){
                if(grid[i][j] == 1){
                    max = Math.max (dfs(grid, i, j), max);
                }
            }
        }
        return max;
    }
    
    int dfs(int[][] grid, int i, int j){
        if(i < 0 || i >= grid.length || j < 0 || j >= grid[0].length || grid[i][j] == 0){
            return 0;
        }
        grid[i][j] = 0;
        int count = 1;
        count += dfs(grid, i+1, j);
        count += dfs(grid, i-1, j);
        count += dfs(grid, i, j+1);
        count += dfs(grid, i, j-1);
        return count;
    }
}
//BFS
class Solution {
    int[][] dicts = new int[][]{{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
    private boolean isInArea(int[][] grid, int i, int j) {
        if (i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)
            return false;
        return true;
    }
    
    public int maxAreaOfIsland(int[][] grid) {
        int ans = 0;
        int m = grid.length;
        int n = grid[0].length;
        Queue<int[]> queue = new ArrayDeque<>();
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (grid[i][j] == 1) {
                    int tmp = 0;
                    grid[i][j] = 0;
                    queue.add(new int[]{i, j});
                    while (!queue.isEmpty()) {
                        int[] cur = queue.poll();
                        tmp++;
                        int x = cur[0];
                        int y = cur[1];
                        for (int[] d : dicts) {
                            int nx = x + d[0];
                            int ny = y + d[1];
                            if (isInArea(grid, nx, ny) && grid[nx][ny] == 1) {
                                grid[nx][ny] = 0;
                                queue.add(new int[]{nx, ny});
                            }
                        }
                    }
                    ans = Math.max(ans, tmp);
                }
            }
        }
        return ans;
    }
}

1323.6 and maximum 9 digits

class Solution {
    public int maximum69Number (int num) {
        return Integer.valueOf(String.valueOf(num).replaceFirst("6","9"));
    }
}
class Solution {
    public int maximum69Number (int num) {
        String numStr = String.valueOf(num);
        char[] cs = numStr.toCharArray();
        for(int i = 0; i < cs.length;i++) {
            char numc = cs[i];
            if (numc == '6') {
                cs[i] = '9';
                break;
            }
        }
        return Integer.valueOf(String.valueOf(cs));
    }
}
class Solution {
    public int maximum69Number (int num) {
        char[] array = String.valueOf(num).toCharArray();
        int length = array.length;
        for (int i = 0; i < length; i++) {
            if (array[i] == '6') {
                array[i] = '9';
                break;
            }
        }
        return Integer.parseInt(new String(array));
    }
}

709. converted to lowercase

class Solution {
    public String toLowerCase(String str) {
        char[] chars = str.toCharArray();
         for(int i=0;i<chars.length;i++){
             if(chars[i] >= 'A'&& chars[i] <= 'Z'){
                 chars[i] += 'a' - 'A';
             }
         }
        return String.valueOf(chars);
    }
}
class Solution {
    public String toLowerCase(String str) {
        if(str == null && "".equals(str))  return null;

        StringBuilder sb = new StringBuilder();
        for(char c:str.toCharArray()){
            if(c >= 'A' && c <= 'Z'){
                sb.append((char)(c+32));
            }else{
                sb.append(c);
            }
        }
        return sb.toString();
    }
}
class Solution {
    public String toLowerCase(String str) {
        String result = "";
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c >= 65 && c <= 90) {
                c += 32; 
            }
            result += c;
        }
        return result;
    }
}

The more you know, the more you do not know.
Proper way without surgery, patients can still seek, there is no way to surgery, ending surgery.
If you have other questions, welcome message, we can discuss, learn together and progress together

He published 193 original articles · won praise 116 · views 10000 +

Guess you like

Origin blog.csdn.net/qq_40722827/article/details/104886515