文章

每日LeetCode 137-139

2021.4.23 ・ 共 319 字,您可能需要 1 分钟阅读

Tags: LeetCode

给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值

class Solution {
    int pre;
    int ans;
    public int minDiffInBST(TreeNode root) {
        ans = Integer.MAX_VALUE;
        pre = -1;
        dfs(root);
        return ans;
    }

    public void dfs(TreeNode root ){
        if (root == null) {
            return;
        }

        dfs(root.left);
        if (pre == - 1) {
            pre = root.val;
        } else {
            ans = Math.min(ans, Math.abs(root.val - pre));
            pre = root.val;
        }
        dfs(root.right);
    }
}

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        int[][] temp = new int[n][n];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                temp[j][n - i - 1] = matrix[i][j];
            }
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                matrix[i][j] = temp[i][j];
            }
        }
    }
}

实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。

示例 1:

输入:x = 2.00000, n = 10
输出:1024.00000
class Solution {
    public double myPow(double x, int n) {
        long N = n;
        return N >= 0 ? quickMul(x, N) : 1.0 / quickMul(x, -N);
    }

    public double quickMul(double x, long N) {
        if (N == 0) {
            return 1.0;
        }
        double y = quickMul(x, N / 2);
        return N % 2 == 1 ? y * y * x : y * y;
    }
}