LeetCode 36

题目

36. 有效的数独 

思路

只能想到暴力遍历,然后使用数组来存储每个元素出现的次数;

去看了题解,使用三个数组分别统计每行、每列、每个3*3子区域中数字出现的次数,只需要遍历一遍,同时更新这三个数组就行了;

代码

public boolean isValidSudoku(char[][] board) {
        // 使用数组来记录每个数字出现的次数
        int[][] rows = new int[9][9];
        int[][] col = new int[9][9];
        int[][][] subboxs = new int[3][3][9];
        for(int i = 0; i < 9; i ++){
            for(int j = 0; j < 9; j++){
                if(board[i][j] != ('.')){
                    int nums = board[i][j] - '0' - 1; // 下标从0开始 也就是第0个下标记录1出现的次数
                    rows[i][nums] += 1;
                    col[j][nums] += 1;
                    subboxs[i/3][j/3][nums] += 1;
                    if(rows[i][nums] > 1 || col[j][nums] > 1 || subboxs[i/3][j/3][nums] > 1){
                        return false;
                    }
                }

            }
        }
        return true;
    }

题目

 

思路

将字符串转化为数字,使用hashmap记录每个字符的对应的数字; 

代码

public boolean isIsomorphic(String s, String t) {
        if(s.length() != t.length()){
            return false;
        }
        // 使用hash表来记录每个字符对应的数字 将字符串转化为数字
        HashMap<Character, Integer> smap = new HashMap<>();
        int scount = 0;
        HashMap<Character, Integer> tmap = new HashMap<>();
        int tcount = 0;
        for(int i = 0; i < s.length(); i++){
            if(!smap.containsKey(s.charAt(i))){
                smap.put(s.charAt(i), scount++);
            }
            if(!tmap.containsKey(t.charAt(i))){
                tmap.put(t.charAt(i), tcount++);
            }
            if(smap.get(s.charAt(i)) != tmap.get(t.charAt(i))){
                return false;
            }
        }
        return true;
    }

 

相关推荐

  1. LeetCode 36

    2024-04-03 20:04:01       36 阅读
  2. LEETCODE-DAY36

    2024-04-03 20:04:01       39 阅读
  3. LeetCode hot100-36-N

    2024-04-03 20:04:01       29 阅读
  4. LeetCode 36. 有效的数独

    2024-04-03 20:04:01       52 阅读
  5. LeetCode day30

    2024-04-03 20:04:01       71 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 20:04:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 20:04:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 20:04:01       82 阅读
  4. Python语言-面向对象

    2024-04-03 20:04:01       91 阅读

热门阅读

  1. U3D开发中Json管理器的常用思路

    2024-04-03 20:04:01       36 阅读
  2. MySQL面试题系列-2

    2024-04-03 20:04:01       36 阅读
  3. Mysql中的那些索引

    2024-04-03 20:04:01       40 阅读
  4. c++ 死锁检测与内存泄露

    2024-04-03 20:04:01       28 阅读
  5. 自定义注解实现对实体类的字段进行校验

    2024-04-03 20:04:01       37 阅读
  6. Redis入门--头歌实验Redis基本命令

    2024-04-03 20:04:01       30 阅读
  7. Android:身份证识别功能实现

    2024-04-03 20:04:01       34 阅读
  8. rk平台Android12屏幕永不休眠

    2024-04-03 20:04:01       29 阅读
  9. c++简介

    2024-04-03 20:04:01       37 阅读
  10. 模板字符串

    2024-04-03 20:04:01       33 阅读
  11. Wind10专业版打不开mstsc

    2024-04-03 20:04:01       32 阅读
  12. llama2学习-预训练+SFT指令微调(单机单卡)

    2024-04-03 20:04:01       34 阅读
  13. 现在做独立站的人多吗?独立站到底要怎么做?

    2024-04-03 20:04:01       32 阅读