概要原先的博客是基于Vitepress加上一些现有的轮子和脚手架搭起来的,现在自己对Vite和Typescript的了解更深入了,想着是时候重构一下自己的博客了
突发奇想想到了用Github提供的RESTful API,将数据单独存放在一个Repo里...
注:课程中SpringMVC部分主要采用前后端不分离+JSP页面负责前端的数据传递和视图渲染,Mybatis的Mapper和Spring的Bean注册主要基于XML进行配置,不涉及关于前后端分离(Vue及Http网络请求)和SpringBoot的内容...
Problem: 1462. 课程表 IV
思路基于分治的思想,对于任意一个课程,它的先决条件课程必然等于它的所有直接前置课程的先决条件课程的交集(即所有间接前置课程),加上它的所有直接前置课程,我们只需要在进行拓扑排序的过程中通过一个数据结构...
Problem: 1123. 最深叶节点的最近公共祖先
思路由于我们无法从子节点向上找回父节点,因此在这道题中明显判断节点的高度要比判断节点的深度更加方便,我们应当用一个数据结构将所有节点的高度存储下来。
基于DFS递归获取每个节点的高度:对于...
Problem: 2605. 从两个数字数组里生成最小数字
思路分类讨论,在不考虑最小值的情况下,可以分为两种情况:
对于任意Misplaced &A\in nums1 & A\notin nums2,B\in nums2 &...
Problem: 449. 序列化和反序列化二叉搜索树
思路如果按照中序遍历打印二叉搜索树,会直接打印出顺序序列,这时该树的根节点隐藏在序列中间,整个序列的组成为:左子树序列+根节点+右子树序列,由于整个数组都是顺序的,我们无法分辨出序列的哪个...
Problem: 2240. 买钢笔和铅笔的方案数
思路设dp[i]为恰好花费i元能够购买的组合方案数
从背包dp的角度上出发思考这道题,金额money为背包,而价格cost为物品,由于每个物品可以被购买无限次,这道题本质上是一道完全背包求组合...
Problem: 1654. 到家的最少跳跃次数
思路
跳蚤可以往前跳 超过 它的家的位置,但是它 不能跳到负整数 的位置。
这句话指明了本道题中位置的下边界为0,但是没有上边界。由于跳蚤可以无限次地向前跳跃,如果我们不去人为找到一个上边界,...
Problem: 823. 带因子的二叉树
思路设dp[i]为以arr[i]为根节点能够构建出的二叉树数量,对于任意a、b满足arr[a]*arr[b]==arr[i],考虑以下两种情况:
当a==b时,能够构建出的二叉树数量为dp[a]*d...
Problem: 57. 插入区间
思路由于题干指明了原区间序列是有序且无重叠的,可以为我们省去许多功夫
我们用一个min和一个max记录当前合并区间的左边界和右边界,且初始化为newInterval的左边界和右边界
顺序遍历intervals...