算法day17|算法day17|530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先 530.二叉搜索树的最小绝对差501.二叉搜索树中的众数236. 二叉树的最近公共祖先 530.二叉搜索树的最小绝对差 中间的逻辑有一点小绕,我第一次也做了20分钟左右才发现问题。具体代码如下: class Solution {public:int Mi
【LeetCode】530.二叉搜索树的最小绝对差 题意:给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数,其数值等于两值之差的绝对值。 思路:中序遍历拿到递增序列,然后求相邻两个数最小值即可。也可以在遍历过程中就拿到这个最小值,此时需要用指针记录上一个节点。 代码A: /*** Definition for a binary tree
给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数,其数值等于两值之差的绝对值。 方法一:中序遍历 public int getMinimumDifference(TreeNode root){Deque<TreeNode> stack = new LinkedList<>();List<Integer> list = new ArrayLi
530. *二叉搜索树的最小绝对差(双指针题型) 众所周知二叉搜索树的中序遍历序列是一个有序数组,因此最基本的方法就是遍历得到中序序列再进行计算,实际上可以用双指针法,记录中序遍历前一个指针和当前指针的差值: class Solution {private int res = Integer.MAX_VALUE;private TreeNode pre = null;private void
思路1:中序遍历,递归排序成有序数组;因为是有序,只需要求相邻两个值的最小差值。 class Solution {ArrayList <Integer> list = new ArrayList();int ans = 100001;//题目最大 100000public int getMinimumDifference(TreeNode root) {getMinimumDifferenc
CF1099A Snowball 题目 有一个重量为 w 的雪球正在高度为 h 的地方向下滚动。每秒它的高度会减少 1。同时在高度 i 的位置它的重量会增加 i(包括初始位置) 同时在滚动的路线上有 2 块石头,第 i 块石头的高度为 hi,即雪球会在 hi 的位置碰到第 i 块雪球。碰到石块后雪球的重量会减少 ui。