漫漫云天自翱翔
漫漫云天自翱翔
全部文章
题解
LeetCode刷题历程(9)
oracle(1)
学习(1)
开发注意事项(1)
未归档(7)
归档
标签
去牛客网
登录
/
注册
Rosa.sp
坚定目标向前
全部文章
/ 题解
(共30篇)
题解 | #矩形覆盖#
来自专栏
题解一: 递归(斐波拉契) 主要思路: 最后一块只有竖着和横着两种摆法:即 f(n) = f(n-1) + f(n-2) 递归分析: 递归边界: number = = 0 返回 0; number = 1 只能竖着放 返回 1; number = 2 可竖可横 返回 2;...
剑指offer
算法
2021-07-02
4
605
题解 | #跳台阶扩展问题#
来自专栏
题解一:递归 题解思路:考虑最后一步是跳几阶到达目标位置的。 主要分析: 1.令f(n)表示n阶台阶总的跳法 2.假设最后只跳一步,那么f(n) = f(n-1); 最后跳两步,那么f(n) = f(n-2);以...
剑指offer
算法
2021-07-01
25
1213
题解 | #旋转数组的最小数字#
来自专栏
题解一:暴力搜索主要思路:从头遍历找寻最小值 复杂度分析: 时间复杂度:O(N),遍历整个数组 空间复杂度:O(1),只使用常数个临时变量实现如下: class Solution { public: int minNumberInRotateArray(vec...
剑指offer
算法
2021-06-30
26
2297
题解 | #用两个栈实现队列#
来自专栏
用两个栈模拟队列题解:模拟原理:两次栈入栈相当于两次逆序可以恢复至原数组次序;思路:1.push操作将值放入栈A 。2.pop操作前,先将栈A中除了栈底值的值push到栈B。3.之后的pop操作直接在栈B上操作,直到栈B为空。在重复2操作。图示: 复杂度分析:时间复杂度:,push操作为O(1),...
剑指offer
算法
2021-06-29
1
490
题解 | #重建二叉树#
来自专栏
前提知识:前序遍历 : 节点按照[ 根 | 左 | 右 ] 顺序遍历中序遍历: 节点按照[ 左 | 根 |右 ] 顺序遍历由此可知: 1.前序遍历的首元素为树的根节点值。 2.根节点的值可以将中序遍历划分为 [左子树中序遍历 | 根节点 | 右子树中序...
算法
剑指offer
2021-06-28
2
487
题解 | #从尾到头打印链表#
来自专栏
题解一:递归题解思路:使用递归先走到链表的末尾,再在回溯时将链表节点中的值加入到数组中。递归边界: head == NULL;递归阶段:一直传入head->next;回溯阶段:将值加入到数组;图示:复杂度分析:时间复杂度:,回溯遍历了整个链表空间复杂度:,去掉输出最终结果vector的数组,栈...
剑指offer
算法
2021-06-28
1
707
题解 | #替换空格#
来自专栏
题解一:暴力(原字符串上修改)题解思路:从头开始遍历数组,当遇到空格,先将后续字符往后移2个位置,再在空格位置以及后两个位置填上"%20"这三个字符 示例:复杂度分析:时间复杂度:,暴力的两次循环,第一层循环找空格位置,第二层循环将空格后面的字符往后移2位置空间复杂度:,只使用常...
剑指offer
算法
2021-06-24
19
861
题解 | #二维数组中的查找#
来自专栏
题解一:暴力搜索解题思路: 逐行逐列的搜索二维数组,判断是否存在目标值。 复杂度分析:时间复杂度:O(MN)空间复杂度:O(1) 实现如下: class Solution { public: bool Find(int target, vector<vector<int> ...
剑指offer
算法
2021-06-23
27
5039
题解 | #斐波那契数列#
来自专栏
什么是斐波拉契数列由题意与斐波拉契数列定义:已知f(n)=f(n-1)+f(n-2),f(0)=0,f(1)=1,求f(n)。题解一:记忆化搜索图示如下:根据思路我们可以实现递归代码: class Solution { public: int Fibonacci(int n) { ...
剑指offer
算法
2021-06-23
8
3232
题解 | #跳台阶#
来自专栏
题解一:记忆化搜索假设有n阶台阶,在所有的跳法中,由于青蛙一次只能跳1步或者2步,所以青蛙跳上最后一阶只能由f(n-1)+1 或者f(n-2)+2 这两种情况得来。即:f(n)=f(n-1)+f(n-2)同理:f(n-1)=f(n-2)+f(n-3),以此类推。这其实就是一个斐波拉契数列。图示如下:...
剑指offer
算法
2021-06-22
25
3445
首页
上一页
1
2
3
下一页
末页