美文网首页
LeetCode 96-100

LeetCode 96-100

作者: 1nvad3r | 来源:发表于2020-10-26 15:59 被阅读0次

96. 不同的二叉搜索树

class Solution {
    public int numTrees(int n) {
        if (n < 1) {
            return 0;
        }
        int[] dp = new int[n + 1];
        dp[0] = 1;
        dp[1] = 1;
        for (int i = 2; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                dp[i] += dp[j - 1] * dp[i - j];
            }
        }
        return dp[n];
    }
}

97. 交错字符串

class Solution {
    public boolean isInterleave(String s1, String s2, String s3) {
        int len1 = s1.length(), len2 = s2.length();
        if (s3.length() != len1 + len2) {
            return false;
        }
        boolean[][] dp = new boolean[len1 + 1][len2 + 1];
        dp[0][0] = true;
        for (int i = 1; i <= len1; i++) {
            if (s1.charAt(i - 1) == s3.charAt(i - 1)) {
                dp[i][0] = true;
            } else {
                break;
            }
        }
        for (int j = 1; j <= len2; j++) {
            if (s2.charAt(j - 1) == s3.charAt(j - 1)) {
                dp[0][j] = true;
            } else {
                break;
            }
        }
        for (int i = 1; i <= len1; i++) {
            for (int j = 1; j <= len2; j++) {
                if (dp[i - 1][j] == true && s1.charAt(i - 1) == s3.charAt(i + j - 1)) {
                    dp[i][j] = true;
                } else if (dp[i][j - 1] == true && s2.charAt(j - 1) == s3.charAt(i + j - 1)) {
                    dp[i][j] = true;
                }
            }
        }
        return dp[len1][len2];
    }
}

98. 验证二叉搜索树

class Solution {
    long pre = Long.MIN_VALUE;

    public boolean inOrder(TreeNode root) {
        if (root == null) {
            return true;
        }
        if (inOrder(root.left) == false) {
            return false;
        }
        if (root.val > pre) {
            pre = root.val;
        } else {
            return false;
        }
        if (inOrder(root.right) == false) {
            return false;
        }
        return true;
    }

    public boolean isValidBST(TreeNode root) {
        return inOrder(root);
    }
}

99. 恢复二叉搜索树

class Solution {
    TreeNode first, second;
    TreeNode pre = new TreeNode(Integer.MIN_VALUE);

    public void inOrder(TreeNode root) {
        if (root == null) {
            return;
        }
        inOrder(root.left);
        if (root.val < pre.val && first == null) {
            first = pre;
        }
        if (root.val < pre.val && first != null) {
            second = root;
        }
        pre = root;
        inOrder(root.right);
    }

    public void recoverTree(TreeNode root) {
        inOrder(root);
        int temp = first.val;
        first.val = second.val;
        second.val = temp;
    }
}

100. 相同的树

class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if (p == null && q == null) {
            return true;
        }
        if (p == null || q == null || p.val != q.val) {
            return false;
        }
        return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
    }
}

相关文章

  • LeetCode 96-100

    96. 不同的二叉搜索树[https://leetcode-cn.com/problems/unique-bina...

  • 96-100

    96 一个人无聊得四处闲逛,看见老舍正专心致志地打理着花草。 “您真是忙碌啊!瞧,多好的天气。” “噢,不,我正是...

  • 96-100

    学习课程 096讲:企业文化|员工的心、企业的智 097讲:仆人领导力|感召从何而来? 098讲:关系文化|落地最...

  • 诗篇96-100

    诗篇 第96篇 你们要向耶和华唱新歌,全地都要向耶和华歌唱!要向耶和华歌唱,称颂他的名,天天传扬他的救恩。在列邦中...

  • 感受日记96-100

    今天是上班的最后一天,终于结束啦!

  • 观唐绝句96-100 莫计古来征战地,几人埋骨几人侯

    老街味道观唐绝句5首,第96-100篇,前面是老街诗作,后面是唐人简介与原诗。 观唐绝句96 • 菱歌(用皇甫松采...

  • 读《100个基本》有感-最基本的也是最有意义的(20)

    这篇文章是“100个基本”有感系列第二十篇也是本系列的最后一篇,将记录96-100条“基本”的感悟。 096 身边...

  • 观唐绝句106-110 唯惜长安一片月, 夜深还照捣衣人

    老街味道观唐绝句5首,第96-100篇,依照旧例,前面是老街味道自己的诗作,用唐人韵,后面是唐人简介与原诗。 观唐...

  • week 2019-06-23

    LeetCode 16[M] LeetCode 17[M] LeetCode 926

  • leetcode

    leetcode leetcode to practice leetcode ac code 数组专题 done ...

网友评论

      本文标题:LeetCode 96-100

      本文链接:https://www.haomeiwen.com/subject/itiamktx.html