剑指offer
不可言丶
这个作者很懒,什么都没留下…
展开
-
剑指offer第十六题【合并两个排序的链表】c++实现
合并两个排序的链表参与人数:2725时间限制:1秒空间限制:32768K通过比例:24.54%最佳记录:0 ms|8552K(来自 大工zay)题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。新建一个链表然后遍历两个链表。ListNode* Merge(ListNode* pHead1, ListNode原创 2015-10-16 19:12:32 · 305 阅读 · 0 评论 -
剑指offer第三题【从尾到头打印链表】c++实现
从尾到头打印链表参与人数:4903时间限制:1秒空间限制:32768K通过比例:16.29%最佳记录:0 ms|0K(来自 William_Meng)题目描述输入一个链表,从尾到头打印链表每个节点的值。这个把链表存到栈里,然后再输出就可以了vector printListFromTailToHead(struct ListNode* head)原创 2015-10-13 17:32:05 · 258 阅读 · 0 评论 -
剑指offer第七题【斐波那契数列】c++实现
斐波那契数列参与人数:3934时间限制:1秒空间限制:32768K通过比例:24.01%最佳记录:0 ms|0K(来自 不可言丶)题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。这个题没什么讲的斐波那契数列 1 1 2 3 5 8 13 21 34……后一个数是前两个数的和,方法很多,别用递归就好,n大就会超内存。原创 2015-10-14 12:54:19 · 376 阅读 · 0 评论 -
剑指offer第六题【旋转数组的最小数字】c++实现
旋转数组的最小数字参与人数:3258时间限制:1秒空间限制:32768K通过比例:14.10%最佳记录:0 ms|0K(来自 Wocao)题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。本题给的也原创 2015-10-14 11:30:19 · 1318 阅读 · 0 评论 -
剑指offer第一题【二维数组中的查找】c++实现
二维数组中的查找参与人数:6321时间限制:1秒空间限制:32768K通过比例:17.00%最佳记录:0 ms|0K(来自 lixiao123)题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。这道题可以从两个地方搜索,右上角或者原创 2015-10-13 16:31:03 · 631 阅读 · 0 评论 -
剑指offer第五题【用两个栈实现队列】c++实现
用两个栈实现队列参与人数:3531时间限制:1秒空间限制:32768K通过比例:34.83%最佳记录:0 ms|0K(来自 William_Meng)题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。这个题解法应该比较多我是原创 2015-10-13 18:11:38 · 1097 阅读 · 0 评论 -
剑指offer第十一题【二进制中1的个数】c++实现
二进制中1的个数参与人数:3696时间限制:1秒空间限制:32768K通过比例:32.22%最佳记录:0 ms|8552K(来自 me_wm)题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。这个题没有什么难度,正数就一直和1做与运算为1就计数,没什么说的。主要是负数,我这里直接强制转换为unsigned int 然后在计算就和整正数原创 2015-10-14 23:03:42 · 395 阅读 · 0 评论 -
剑指offer第十题【矩形覆盖】c++实现
矩形覆盖参与人数:3883时间限制:1秒空间限制:32768K通过比例:31.53%最佳记录:0 ms|8552K(来自 牛客946562号)题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?这道题主要是分析,逆着推。加最后一块可以直接竖着放,或者和前一块一起原创 2015-10-14 22:34:14 · 984 阅读 · 0 评论 -
剑指offer第十二题【数值的整数次方】c++实现
数值的整数次方参与人数:2920时间限制:1秒空间限制:32768K通过比例:25.37%最佳记录:0 ms|8552K(来自 ccnew)题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。这道题指数不会大,直接for循环也能做,但我习惯性用快速幂去做本题就是指数可能为负的,取倒数就可以了原创 2015-10-15 08:11:34 · 315 阅读 · 0 评论 -
剑指offer第十三题【调整数组顺序使奇数位于偶数前面】c++实现
调整数组顺序使奇数位于偶数前面参与人数:3582时间限制:1秒空间限制:32768K通过比例:17.78%最佳记录:0 ms|8552K(来自 ccnew)题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解法比较多,可以可以把偶数原创 2015-10-16 10:39:40 · 533 阅读 · 0 评论 -
剑指offer第三十一题【整数中1出现的次数(从1到n整数中1出现的次数)】c++实现
整数中1出现的次数(从1到n整数中1出现的次数)参与人数:1779时间限制:1秒空间限制:32768K通过比例:24.07%最佳记录:0 ms|8552K(来自 啊哈哈) 算法知识视频讲解题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于原创 2015-11-18 10:03:23 · 446 阅读 · 0 评论 -
剑指offer第三十二题【把数组排成最小的数】c++实现
把数组排成最小的数参与人数:1233时间限制:1秒空间限制:32768K通过比例:20.53%最佳记录:0 ms|8552K(来自 啊哈哈) 算法知识视频讲解题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。这道题其实就是一道排原创 2015-11-18 11:37:37 · 788 阅读 · 0 评论 -
剑指offer第三十四题【数字在排序数组中出现的次数】c++实现
数字在排序数组中出现的次数参与人数:1541时间限制:1秒空间限制:32768K通过比例:28.25%最佳记录:0 ms|8552K(来自 不可言丶) 算法知识视频讲解题目描述统计一个数字在排序数组中出现的次数。方法很多,最高效的是用二分查找上下界,结果就是上届减下届加一class Solution {public: int GetNumberO原创 2015-12-17 16:10:30 · 376 阅读 · 0 评论 -
剑指offer第三十五题【二叉树的深度】c++实现
二叉树的深度参与人数:1837时间限制:1秒空间限制:32768K通过比例:38.54%最佳记录:0 ms|8552K(来自 Double_S) 算法知识视频讲解题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。递归做很简单/*struct TreeNode { i原创 2015-12-17 16:22:28 · 405 阅读 · 0 评论 -
剑指offer第三十六题【平衡二叉树】c++实现
平衡二叉树参与人数:1452时间限制:1秒空间限制:32768K通过比例:32.06%最佳记录:0 ms|8552K(来自 水星哥) 算法知识视频讲解题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。平衡二叉树的定义是 左右两子树的高度差不能搞超过1所以这题就是比较左右子树的高度差,和求整个树高类似,直接递归/*struct TreeNode {原创 2015-12-17 16:43:07 · 454 阅读 · 0 评论 -
剑指offer第三十三题【两个链表的第一个公共结点】c++实现
两个链表的第一个公共结点参与人数:1581时间限制:1秒空间限制:32768K通过比例:30.88%最佳记录:0 ms|8552K(来自 bigsnail) 算法知识视频讲解题目描述输入两个链表,找出它们的第一个公共结点。两个链表有公共节点会形成一个Y形。所以只需要先查出每个链表的长度,然后让长的链表走长度差个节点,最后依次比较两个链表的节点是否相原创 2015-12-17 16:04:56 · 355 阅读 · 0 评论 -
剑指offer第二题【替换空格】c++实现
替换空格参与人数:5934时间限制:1秒空间限制:32768K通过比例:16.45%最佳记录:0 ms|0K(来自 lixiao123)题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。这个题没什么说的 void replaceSpa原创 2015-10-13 17:20:50 · 369 阅读 · 0 评论 -
剑指offer第八题【跳台阶】c++实现
跳台阶参与人数:6380时间限制:1秒空间限制:32768K通过比例:28.82%最佳记录:0 ms|0K(来自 牛客164435号)题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。这题其实和斐波那契数列一样。第n阶台阶可以由第n-1阶台阶跳一步或者第n-2阶台阶跳两步所以有公式f(n)=f(n-1)+原创 2015-10-14 13:07:50 · 382 阅读 · 0 评论 -
剑指offer第四题【重建二叉树】c++实现
重建二叉树参与人数:2850时间限制:1秒空间限制:32768K通过比例:18.31%最佳记录:0 ms|0K(来自 LaZZy)题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二原创 2015-10-13 17:38:22 · 535 阅读 · 0 评论 -
剑指offer第十七题【树的子结构】c++实现
树的子结构参与人数:2193时间限制:1秒空间限制:32768K通过比例:17.43%最佳记录:0 ms|8552K(来自 董尼玛)题目描述输入两颗二叉树A,B,判断B是不是A的子结构。只要A抽出来一部分和B的值完全相等就行了。依次搜过各个结点,先看父节点,再看左右子节点。bool isSubtree(TreeNode* Tree,TreeNode *原创 2015-10-17 22:21:06 · 379 阅读 · 0 评论 -
剑指offer第十五题【反转链表】c++实现
反转链表参与人数:3159时间限制:1秒空间限制:32768K通过比例:25.17%最佳记录:0 ms|3156K(来自 童飞帆)题目描述输入一个链表,反转链表后,输出链表的所有元素。用栈存一下在取出,把最后一个节点指向空ListNode* ReverseList(ListNode* pHead) { if(pHead==NULL){原创 2015-10-16 17:59:04 · 295 阅读 · 0 评论 -
剑指offer第十四题【链表中倒数第k个结点】c++实现
链表中倒数第k个结点参与人数:2991时间限制:1秒空间限制:32768K通过比例:19.65%最佳记录:0 ms|8552K(来自 ccnew)题目描述输入一个链表,输出该链表中倒数第k个结点。原创 2015-10-16 11:22:35 · 239 阅读 · 0 评论 -
剑指offer第十八题【二叉树的镜像】c++实现
二叉树的镜像参与人数:2536时间限制:1秒空间限制:32768K通过比例:29.31%最佳记录:0 ms|8552K(来自 ccnew)题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5原创 2015-10-18 08:15:43 · 395 阅读 · 0 评论 -
剑指offer第十九题【顺时针打印矩阵】c++实现
顺时针打印矩阵参与人数:1858时间限制:1秒空间限制:32768K通过比例:15.43%最佳记录:0 ms|8552K(来自 董尼玛)题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,1原创 2015-10-18 11:23:02 · 493 阅读 · 0 评论 -
剑指offer第二十一题【栈的压入、弹出序列】c++实现
栈的压入、弹出序列参与人数:1958时间限制:1秒空间限制:32768K通过比例:22.25%最佳记录:0 ms|8552K(来自 geeek)题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但原创 2015-10-18 16:55:54 · 909 阅读 · 0 评论 -
剑指offer第二十二题【从上往下打印二叉树】c++实现
从上往下打印二叉树参与人数:2132时间限制:1秒空间限制:32768K通过比例:24.75%最佳记录:0 ms|8552K(来自 。着…)题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。这道题就是层序遍历,我用的队列。vector PrintFromTopToBottom(TreeNode *root) { queue que;原创 2015-10-18 22:12:06 · 318 阅读 · 0 评论 -
剑指offer第二十三题【二叉搜索树的后序遍历序列】c++实现
二叉搜索树的后序遍历序列参与人数:1784时间限制:1秒空间限制:32768K通过比例:20.62%最佳记录:0 ms|8552K(来自 牛客456244号)题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。后序遍历最后一个是根节点,往前找第一个比根节点小的原创 2015-10-18 22:15:14 · 351 阅读 · 0 评论 -
剑指offer第二十四题【二叉树中和为某一值的路径】c++实现
二叉树中和为某一值的路径参与人数:1505时间限制:1秒空间限制:32768K通过比例:21.37%最佳记录:0 ms|3156K(来自 风痕)题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。先序遍历二叉树,用一个数组记录当前路径,如果遍历到叶子节点就进行判断是原创 2015-10-20 10:32:30 · 952 阅读 · 0 评论 -
剑指offer第二十五题【复杂链表的复制】c++实现
复杂链表的复制参与人数:1297时间限制:1秒空间限制:32768K通过比例:17.22%最佳记录:0 ms|8552K(来自 LuLu1990)题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。将复制后的节点插入在原节点后面然后就有node->random=old->random->next原创 2015-10-20 12:16:43 · 626 阅读 · 0 评论 -
剑指offer第二十六题【二叉搜索树与双向链表】c++实现
二叉搜索树与双向链表参与人数:1237时间限制:1秒空间限制:32768K通过比例:24.74%最佳记录:0 ms|8552K(来自 牛客456244号)题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。主要思路:中序遍历,遍历的顺序就是,数值从小到大用一个指针指向,当前指针的前一原创 2015-10-21 15:35:33 · 629 阅读 · 0 评论 -
剑指offer第二十八题【数组中出现次数超过一半的数字】c++实现
数组中出现次数超过一半的数字参与人数:1910时间限制:1秒空间限制:32768K通过比例:20.40%最佳记录:0 ms|8552K(来自 牛客655987号)题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不原创 2015-10-23 17:16:46 · 472 阅读 · 0 评论 -
剑指offer第二十七题【字符串的排列】c++实现
字符串的排列参与人数:1368时间限制:1秒空间限制:32768K通过比例:15.08%最佳记录:0 ms|8552K(来自 牛客482459号)题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 输入原创 2015-10-23 16:36:30 · 528 阅读 · 0 评论 -
剑指offer第二十九题【最小的K个数】c++实现
最小的K个数参与人数:1734时间限制:1秒空间限制:32768K通过比例:17.07%最佳记录:0 ms|3156K(来自 Pypanda)题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。方法比较多,我直接用的set,然后取前k个就行了vector GetLeastNumb原创 2015-10-24 18:44:05 · 455 阅读 · 0 评论 -
剑指offer第三十题【连续子数组的最大和】c++实现
连续子数组的最大和参与人数:1704时间限制:1秒空间限制:32768K通过比例:29.30%最佳记录:0 ms|8552K(来自 tony99)题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包原创 2015-10-25 10:37:00 · 1019 阅读 · 0 评论 -
剑指offer第二十题【包含min函数的栈】c++实现
包含min函数的栈参与人数:2005时间限制:1秒空间限制:32768K通过比例:31.12%最佳记录:0 ms|8552K(来自 Lying从来不说谎)题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。这个也是没什么说的用链表根据栈的原理事先就好,min函数遍历链表就好。class Solution {public:原创 2015-10-18 15:48:59 · 916 阅读 · 0 评论