
剑指offer
文章平均质量分 52
「已注销」
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二维数组中的查找
写在前面:牛客网剑指offer的日记文。算法总结是参考牛客网评论后自己的理解与整理。萌新会尽量著明引用出处,侵权必删。题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。题目理解:二维数组查找题。暴力求解最坏时间复杂度:O(n^2)。可以考虑剪枝、二分(查找题万年王道)。下面...原创 2018-04-16 00:14:40 · 152 阅读 · 0 评论 -
从尾到头打印链表
写在前面:牛客网剑指offer的日记文。算法总结是参考牛客网评论后自己的理解与整理。萌新会尽量著明引用出处,侵权必删。题目描述:输入一个链表,从尾到头打印链表每个节点的值。题目分析:反转链表。/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * ...原创 2018-04-16 20:09:06 · 104 阅读 · 0 评论 -
重建二叉树
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。题目分析:前序遍历的首元素即为二叉树的根结点,通过查找根结点在中序遍历中的位置构建左右子树的前序、中序遍历。/** * Definition for b...原创 2018-04-23 09:42:44 · 113 阅读 · 0 评论 -
矩形覆盖
题目描述:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?题目分析:斐波那契数列(图片来源:牛客网csdong)class Solution { public: int rectCover(int number) { vector<int> v; v.push_bac...原创 2018-04-23 23:21:06 · 160 阅读 · 0 评论 -
合并两个排序的链表
题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。非递归版:/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode*...原创 2018-04-24 16:50:25 · 117 阅读 · 0 评论 -
树的子结构
题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)题目分析:子结构,子结构,子结构。不是子树!(图片来源:牛客网txlstars)这也是满足题意的!/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...原创 2018-04-24 18:21:25 · 178 阅读 · 1 评论