岛屿最大面积_组合总和

岛屿的最大面积

岛屿的最大面积

image-20220506172045759

class Solution {
    int[][] next = {{1,0},{-1,0},{0,-1},{0,1}};
    public int DSF(int[][] grid,int row,int col,int sr,int sc){
        //标记
        int count = 1;
        grid[sr][sc] = -1;
        for(int i = 0;i<next.length;i++){
             int x = sr + next[i][0];
             int y = sc + next[i][1];
             if(x<0||x>=row||y<0||y>=col){
                 //越界
                 continue;
             }
             if(grid[x][y]==1){
                 //注意重点!!! count开始时要赋值为 1 
                 //因为进了这个函数就说明是陆地!
                count += DSF(grid,row,col,x,y);
             }
        }
        return count;
    }
    public int maxAreaOfIsland(int[][] grid) {
          int maxArea = 0;
          int row = grid.length;
          int col = grid[0].length;  
          for(int i = 0;i<row;i++){
              for(int j = 0;j<col;j++){
                  if(grid[i][j]==1){
                     maxArea = Math.max(maxArea,DSF(grid,row,col,i,j));
                  }
              }
          }
        return maxArea;
    }
}

电话号码的字母组合

电话号码的字母组合

image-20220506185646045

class Solution {
    public static void DFS(HashMap <Character,String> map, List<String> result, char[] d, StringBuilder str,int pos){
        if(pos==d.length){//递归出口!
            result.add(str.toString());
            return;
        }
            //拿到 value字符串!
            //这里不能套循环遍历,因为这里不能重复!
            String tmp = map.get(d[pos]);
            for(int j = 0;j<tmp.length();j++){
                //遍历该字符串!
                //添加该字符!
                str.append(tmp.charAt(j));
                //进入下一层 深度!
                DFS(map, result, d, str, pos+1);
                //回退!
                //str.delete(str.length()-1,str.length());
                str.deleteCharAt(str.length()-1);
            }
    }
    public static  List<String> letterCombinations(String digits) {
        List<String> result = new LinkedList<>();
        if(digits.length()==0){
            return result;
        }
        char[] d = digits.toCharArray();
        String[] table = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
        StringBuilder str = new StringBuilder();
        HashMap<Character,String> map = new HashMap<>();
        for(int i =0;i<d.length;i++){
            map.put(d[i],table[d[i]-'0']);
        }
        DFS(map,result,d,str,0);
        return result;
    }
}
全部评论

相关推荐

半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
会考什么呀?硬件岗
投递大疆等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务