![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 91
Java技术一点通
本人计算机软件工程专业在读,擅长于Java后端开发,有多个项目开发经验,业余丰富各种技术栈,大学期间参与软件研发中心研究。荣获2023年CSDN博客之星、CSDN城市之星、阿里云社区专家博主、华为云享专家,致力于新技术的推广与优秀作品的普及。
展开
-
《剑指offer》题解——week6(持续更新)
排序数组中的搜索问题,首先想到 二分法 解决。假设我们缺失的元素数值为 $x$,那么对于 $x$ 左边的元素(若有)必然是完整且连续的,也就是其必然满足 $nums[i] = i$,而其右边的元素(若有)必然由于 x 的缺失,导致必然不满足 $nums[i] = i$,因此在以缺失元素为分割点的数轴上,具有**二段性**,我们可以使用原创 2022-08-21 02:32:04 · 4461 阅读 · 0 评论 -
《剑指offer》题解——week5(持续更新)
动态规划:状态定义:设动态规划列表dp,dp[i]表示以 x_i为结尾的数字的翻译方案数量。2. 转移方程:*若$x_i$ 和 $x_{i - 1}$ 组成的两位数字可以被翻译,则`dp[i] = dp[i - 1] + dp[i - 2]`;否则`dp[i] = dp[i - 1]`。>可被翻译的两位数的区间:当 $x_{i - 1} = 0$时,组成的两位数是无法被翻译的(例如00,01,……),因此区间为 $[10, 25]$。原创 2022-08-19 09:04:48 · 2932 阅读 · 0 评论 -
《剑指offer》题解——week4(持续更新)
二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树:递归解析:终止条件: 当,说明此子树节点数量 ⩽\leqslant⩽ 1 ,无需判别正确性,因此直接返回 ;递推过程:划分左右子树: 遍历给定数组的区间元素,寻找第一个大于根节点的结点,记索引为。此时,可划分出左子树区间为、右子树区间为、根节点索引为。判断是否为二叉搜索树:返回值: 所有子树都需正确才判定为正确的二叉搜索树的后序遍历。因此使用 与逻辑符 && 连接。 做法是使用 ,在 过程中记录路径以及路径对应的元素和,当出现元素原创 2022-08-17 12:48:52 · 3451 阅读 · 3 评论 -
《剑指offer》题解——week3(持续更新)
1. 首先判断两个二叉树为空的情况,如果为空,直接`return false`;2. 如果不为空,就可以调用`isSame(A, B)`函数来判断B是否为A的子树。如果不是,则递归,判断B是否是A的左子树的子树,或者,B是否是A的右子树的子树。注意是`||`3. 对于函数`isSame(A, B)`的细节。首先判断B子树的节点是否为空,如果为空,说明前面的都匹配,直接`return true`;4. 接下来,如果B树的节点不为空,但是A树的节点为空,那么一定不匹配,直接`return false`;原创 2022-08-11 03:48:30 · 5986 阅读 · 1 评论 -
《剑指offer》题解——week2(持续更新)
由于需要对结果进行取余,导致`不能使用动态规划`,因为取模导致了dp的运算出现了问题。dp是通过最优子问题来计算出最终结果的,而取模之后就导致计算最优子问题出现了问题,计算出来的`dp[i-j]*j`表面上可能是最大的,但是`dp[i-j]`也是经过取模运算的,从而这会导致`dp[i]`不是由前面的最优子问题推出来的。原创 2022-08-10 13:31:57 · 4501 阅读 · 1 评论 -
《剑指offer》题解——week1(持续更新)
思路:定义一个哈希表,遍历一次数组,利用哈希表对每个元素进行标记。若当前元素被标记过了,则该元素重复。**时间复杂度:**`O(n)`**方法二:原地交换**主要思想是把每个数放到对应的位置上,即让 `nums[i] = i`。前往后遍历数组中的所有数,假设当前遍历到的数是 `nums[i]=x`,那么:- 如果`x != i && nums[x] == x`,则说明 `x`出现了多次,直接返回 `x`即可;- 如果`nums[x] != x`,那我们就把 `x` 交换原创 2022-08-08 12:47:25 · 3676 阅读 · 0 评论 -
leetcode第84场双周赛
维护一个unordered_map mp,mp[x]表示类型x的任务最近一次的结束时间。按顺序枚举所有任务,设当前任务类型为。从倒数第二个数开始往前考虑。,执行当前任务之前已经经过了。是有序的,直接把遍历。的结果作为答案即可。把等式两边移项,变为。原创 2022-08-07 12:37:44 · 14291 阅读 · 2 评论