剑指offer刷题题解
进行剑指offer刷题, 每天更新题解
dogs~xiaofei
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 14- I. 剪绳子
题目原创 2021-07-30 13:19:09 · 61 阅读 · 0 评论 -
剑指 Offer 11. 旋转数组的最小数字
题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。样例:大家先自己思考一下, 他这个是把一个上升的数组, 后面的一部分换到了后面相信大家肯定能想到这个O(n)的算法思路 :因为他是把一部分小的放到上升数列的后面那么遍历数组出现下降的地方一定是最小的值代码class Solution {public:原创 2021-07-25 20:04:33 · 55 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列
题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )样例:还是老样子, 大家先思考想一下栈和队列的性质。就大概知道知道怎么做了思路:栈是先进后出的数据结构, 队列是先进先出的性质很容易想到两个栈就可以实现 一个先进先出的性质这道题 他没有考虑栈的大小所以不需要考虑那么多 栈一 q1 栈二 q2首先 从q原创 2021-07-24 13:44:03 · 53 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树(前序遍历和后续遍历确定二叉树)
题目输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。样例:还是老样子想自己思考一下, 想一想前序遍历和后序遍历的关系如果搞清这个后面就好搞, 另外会了这道题那么知道后序遍历和中序遍历建二叉树, 一样的道理, 可以试着写一些。思路:我们来想先序遍历是不是根每次最先被遍历, 那面先序遍历的结果的第一个永远是本颗树的根节点,中序遍历呢, 他根节点是 在遍历完左子树 之后遍历根在遍历右子树, 那么知道根的原创 2021-07-23 20:45:53 · 64 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。数据范围还是老样子大家先思考本问题!我们来想这道题的关键点 它的每一行是递增的, 每一列是递增的, 并且这道题的意思是让找是否有与目标值相同的值很容易想到log(n)的二分, 没错这道题最好的方法就是二分, 但是这个二分有点扩展思路: 我们从右上角开始二分 找两个指针一个是行row =原创 2021-07-22 20:44:08 · 54 阅读 · 0 评论 -
剑指 Offer 52. 两个链表的第一个公共节点
题目:输入两个链表,找出它们的第一个公共节点。对于第一个样例 A和B的第一个公共节点是c1这里澄清以下什么叫公共节点并不是所谓的值相同就行了而是后面的节点都相同。第二个样例一样请大家仔细想一下这个怎么才能做到时间O(n) 空间O(1)的做法?先不要看下边的题解,没有思考这道题的印象就不会深!!!!相信大家看到这里肯定经过了仔细思考了?不知道大家做出来没有我刚开始的没想到我也想了倒着来遍历发觉不可行就放弃了看题解了不得不说刚开始没有想到一看leetcode那个官方题解不够仔细原创 2021-07-21 21:18:38 · 81 阅读 · 0 评论