自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 剑指offer第三十题【连续子数组的最大和】c++实现

连续子数组的最大和参与人数:1704时间限制:1秒空间限制:32768K通过比例:29.30%最佳记录:0 ms|8552K(来自  tony99)题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包

2015-10-25 10:37:00 991

原创 剑指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 431

原创 剑指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 452

原创 剑指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 507

原创 剑指offer第二十六题【二叉搜索树与双向链表】c++实现

二叉搜索树与双向链表参与人数:1237时间限制:1秒空间限制:32768K通过比例:24.74%最佳记录:0 ms|8552K(来自  牛客456244号)题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。主要思路:中序遍历,遍历的顺序就是,数值从小到大用一个指针指向,当前指针的前一

2015-10-21 15:35:33 594

原创 剑指offer第二十五题【复杂链表的复制】c++实现

复杂链表的复制参与人数:1297时间限制:1秒空间限制:32768K通过比例:17.22%最佳记录:0 ms|8552K(来自  LuLu1990)题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。将复制后的节点插入在原节点后面然后就有node->random=old->random->next

2015-10-20 12:16:43 595

原创 剑指offer第二十四题【二叉树中和为某一值的路径】c++实现

二叉树中和为某一值的路径参与人数:1505时间限制:1秒空间限制:32768K通过比例:21.37%最佳记录:0 ms|3156K(来自  风痕)题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。先序遍历二叉树,用一个数组记录当前路径,如果遍历到叶子节点就进行判断是

2015-10-20 10:32:30 926

原创 剑指offer第二十三题【二叉搜索树的后序遍历序列】c++实现

二叉搜索树的后序遍历序列参与人数:1784时间限制:1秒空间限制:32768K通过比例:20.62%最佳记录:0 ms|8552K(来自  牛客456244号)题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。后序遍历最后一个是根节点,往前找第一个比根节点小的

2015-10-18 22:15:14 322

原创 剑指offer第二十二题【从上往下打印二叉树】c++实现

从上往下打印二叉树参与人数:2132时间限制:1秒空间限制:32768K通过比例:24.75%最佳记录:0 ms|8552K(来自  。着…)题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。这道题就是层序遍历,我用的队列。vector PrintFromTopToBottom(TreeNode *root) { queue que;

2015-10-18 22:12:06 299

原创 剑指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 880

原创 剑指offer第二十题【包含min函数的栈】c++实现

包含min函数的栈参与人数:2005时间限制:1秒空间限制:32768K通过比例:31.12%最佳记录:0 ms|8552K(来自  Lying从来不说谎)题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。这个也是没什么说的用链表根据栈的原理事先就好,min函数遍历链表就好。class Solution {public:

2015-10-18 15:48:59 881

原创 剑指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 472

原创 剑指offer第十八题【二叉树的镜像】c++实现

二叉树的镜像参与人数:2536时间限制:1秒空间限制:32768K通过比例:29.31%最佳记录:0 ms|8552K(来自  ccnew)题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5

2015-10-18 08:15:43 371

原创 剑指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 354

原创 剑指offer第十六题【合并两个排序的链表】c++实现

合并两个排序的链表参与人数:2725时间限制:1秒空间限制:32768K通过比例:24.54%最佳记录:0 ms|8552K(来自  大工zay)题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。新建一个链表然后遍历两个链表。ListNode* Merge(ListNode* pHead1, ListNode

2015-10-16 19:12:32 282

原创 剑指offer第十五题【反转链表】c++实现

反转链表参与人数:3159时间限制:1秒空间限制:32768K通过比例:25.17%最佳记录:0 ms|3156K(来自  童飞帆)题目描述输入一个链表,反转链表后,输出链表的所有元素。用栈存一下在取出,把最后一个节点指向空ListNode* ReverseList(ListNode* pHead) { if(pHead==NULL){

2015-10-16 17:59:04 273

原创 剑指offer第十四题【链表中倒数第k个结点】c++实现

链表中倒数第k个结点参与人数:2991时间限制:1秒空间限制:32768K通过比例:19.65%最佳记录:0 ms|8552K(来自  ccnew)题目描述输入一个链表,输出该链表中倒数第k个结点。

2015-10-16 11:22:35 216

原创 剑指offer第十三题【调整数组顺序使奇数位于偶数前面】c++实现

调整数组顺序使奇数位于偶数前面参与人数:3582时间限制:1秒空间限制:32768K通过比例:17.78%最佳记录:0 ms|8552K(来自  ccnew)题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解法比较多,可以可以把偶数

2015-10-16 10:39:40 511

原创 剑指offer第十二题【数值的整数次方】c++实现

数值的整数次方参与人数:2920时间限制:1秒空间限制:32768K通过比例:25.37%最佳记录:0 ms|8552K(来自  ccnew)题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。这道题指数不会大,直接for循环也能做,但我习惯性用快速幂去做本题就是指数可能为负的,取倒数就可以了

2015-10-15 08:11:34 296

原创 剑指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 374

原创 剑指offer第十题【矩形覆盖】c++实现

矩形覆盖参与人数:3883时间限制:1秒空间限制:32768K通过比例:31.53%最佳记录:0 ms|8552K(来自  牛客946562号)题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?这道题主要是分析,逆着推。加最后一块可以直接竖着放,或者和前一块一起

2015-10-14 22:34:14 962

原创 剑指offer第九题【变态跳台阶】c++实现

变态跳台阶参与人数:4749时间限制:1秒空间限制:32768K通过比例:35.99%最佳记录:0 ms|0K(来自  Wocao)题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。这个题改成了可以跳任意阶,所以本阶跳法就是架上之前所有阶梯的跳法再+1(直接跳n)。f(n)=s(n)+1

2015-10-14 17:39:25 470

原创 剑指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 358

原创 剑指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 335

原创 剑指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 1295

原创 剑指offer第五题【用两个栈实现队列】c++实现

用两个栈实现队列参与人数:3531时间限制:1秒空间限制:32768K通过比例:34.83%最佳记录:0 ms|0K(来自  William_Meng)题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。这个题解法应该比较多我是

2015-10-13 18:11:38 1072

原创 剑指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 509

原创 剑指offer第三题【从尾到头打印链表】c++实现

从尾到头打印链表参与人数:4903时间限制:1秒空间限制:32768K通过比例:16.29%最佳记录:0 ms|0K(来自  William_Meng)题目描述输入一个链表,从尾到头打印链表每个节点的值。这个把链表存到栈里,然后再输出就可以了vector printListFromTailToHead(struct ListNode* head)

2015-10-13 17:32:05 235

原创 剑指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 342

原创 剑指offer第一题【二维数组中的查找】c++实现

二维数组中的查找参与人数:6321时间限制:1秒空间限制:32768K通过比例:17.00%最佳记录:0 ms|0K(来自  lixiao123)题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。这道题可以从两个地方搜索,右上角或者

2015-10-13 16:31:03 606

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除