自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

buaadf的博客

做点儿笔记……

  • 博客(26)
  • 资源 (3)
  • 收藏
  • 关注

原创 剑指offer题解C++【23】二叉搜索树的后序遍历序列

题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。解题思路 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。后序遍历的顺序是左-

2017-07-28 22:19:01 622

原创 剑指offer题解C++【22】从上往下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。解题思路二叉树的层次遍历,借助一个队列实现。 创建一个队列,其中元素的类型为二叉树的节点; 按照“根-左-右”的顺序依次将二叉树的节点放入队列,每次从队顶取出对应节点的值,并删除队顶元素,直到队列为空。代码/*struct TreeNode { int val; struct TreeNode *left;

2017-07-28 11:40:11 405

原创 剑指offer题解C++【21】栈的压入、弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路创建一个栈进行压入、弹出操作。 当栈为空或者栈顶元素和popV当前元素不相等时,将pu

2017-07-28 10:58:49 1679

原创 剑指offer题解C++【20】包含min的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。解题思路1定义两个栈,一个栈保存数据,另一个保存新数据入栈后的最小数 pop时,两个栈都要pop; 则minstack()的栈顶即为最小元素。代码class Solution {public: void push(int value) { mystack.push(value);

2017-07-28 09:47:41 261

原创 剑指offer题解C++【19】顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解题思路首先计算矩阵的行数和列数:行数=matrix.size(

2017-07-28 09:46:33 430

原创 剑指offer题解C++【18】二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10

2017-07-28 09:42:58 413

原创 剑指offer题解C++【17】树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路首先编写一个判定两棵树是否相同的函数isSame(TreeNode* p1, TreeNode*p2); 在HasSubTree函数中判断A的所有子树是否和B相同,若有相同的,则返回True。代码/*struct TreeNode { int val; struct Tree

2017-07-28 09:42:17 349

原创 剑指offer题解C++【16】合并两个排序的链表

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路首先创建一个空链表Head作为合并后的链表; 如果其中一个链表为空,则将另一个链表赋给Head; 如果两个链表均不为空,则比较当前的val,将val小的赋给Head,并将指针移动至下一个元素,直到某一个链表为空。代码/*struct ListNode { int val;

2017-07-27 18:32:05 313

原创 剑指offer题解C++【15】反转链表

题目描述输入一个链表,反转链表后,输出链表的所有元素。解题思路新建两个空链表p和pnext;当前元素为pHead;先把下一个元素存下来,存为pnext;将下一个元素变为p;将当前元素pHead(已经反转)赋给p;将pnext(即原先未反转的下一个元素)赋给pHead;重复1~4,直到pHead为最后一个元素(指向nullptr)。代码/*struct ListNode { in

2017-07-27 17:29:14 230

原创 剑指offer题解C++【14】链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。解题思路设原始链表共n个节点; 将原始链表复制到两个新链表p1和p2; 先找到p2的第k个节点; 然后p1和p2同时指向下一个节点,直到p2为nullptr,此时p1指向第n-k个节点,即倒数第k个节点;代码/*struct ListNode { int val; struct ListNode *next; List

2017-07-27 16:50:28 360

原创 剑指offer题解C++【13】调整数组顺序使奇数位于偶数前面

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解题思路复制原数组到一个新数组; 从前往后遍历,若为奇数,则依次替换原数组; 再次从前往后遍历,若为偶数,则继续替换原数组。代码class Solution {public: void reOrderArra

2017-07-27 16:32:06 434

原创 剑指offer题解C++【12】数值的整数次幂

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解题思路库函数中有幂函数pow(x,y),如果你直接return pow(base,exponent);也能通过测试用例,但估计offer无缘了。为了降低时间复杂度,使用递归:如果n为偶数,a^n=a^(n/2)*a(n/2);如果n为奇数,a^n=a^(n/2)*a(n/2)*

2017-07-27 15:55:25 1088

原创 剑指offer题解C++【11】二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路一个不为0的整数n,如果减1,那么(其二进制表示)原来处于最右边的1将会变为0,这个1后面的0(如果有的话)都会变为1,其余位数保持不变; 让n和n-1进行按位与,即n&(n-1),则会让n最右边的1变为0; 那么n的二进制中有多少个1,就可以进行多少次这样的操作。在计算机中,负数本身就是用补码表示的,因此不用考虑这

2017-07-27 14:46:38 314

原创 剑指offer题解C++【10】矩形覆盖

题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解题思路2*n的大矩形,设其横边为n,竖边为2,用n个2*1的矩形覆盖,共有arr[n]种方法; 若第一块矩形竖着放,则有arr[n-1]种; 若第一块矩形横着放,则第二块矩形也必须横着放,则有arr[n-2]种; 综上,arr[n]=arr[n-1]+arr

2017-07-27 14:31:08 460

原创 剑指offer题解C++【9】变态跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路假设n级台阶有arr[n]种跳法; 第一次跳1阶,有arr[n-1]种; 第一次跳2阶,有arr[n-2]种; …… 第一次跳n-1阶,有arr[1]=1种; 第一次跳n阶,有arr[0]=1种; 综合以上,arr[n]=arr[0]+arr[1]+arr[2]+

2017-07-27 14:22:32 274

原创 剑指offer题解C++【8】跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路对于n级台阶,假设有arr[n]种跳法; 1. 如果第一次跳1阶,那么总共有arr[n-1]种跳法; 2. 如果第一次跳2阶,那么总共有arr[n-2]种跳法; 3. 结合1,2,那么arr[n]=arr[n-1]+arr[n-2]代码class Solution {public:

2017-07-27 14:01:19 274

原创 剑指offer题解C++【7】斐波那契数列

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39解题思路斐波那契数列:1,1,2,3,5,8,13…… 第n项是第n-1项与n-2项之和,题目只要n<=39代码class Solution {public: int Fibonacci(int n) { if (n < 0) return -1;

2017-07-27 13:23:00 328

原创 剑指offer题解C++【6】旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路旋转数组可以分为两个有序的数组,最小元素就是这两个数组的分界点。可以用二分查找来解决:当数组大小为0时,返

2017-07-26 22:58:51 281

原创 剑指offer题解C++【5】用两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路队列C++队列queue模板类的定义在< queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。C++队列Queue类成员

2017-07-26 16:21:34 288

原创 剑指offer题解C++【4】重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路前序遍历:中-左-右中序遍历:左-中-右后序遍历:左-右-中前序遍历序列的第一个值就是root;在中序遍历序列中找到root,root左侧为左

2017-07-26 14:55:26 242

原创 剑指offer题解C++【3】

题目描述输入一个链表,从尾到头打印链表每个节点的值。解题思路首先将链表中的值从头到尾压入一个栈中,然后再依次将值从栈中读取出来。 利用栈的先进后出原理即可。代码/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val

2017-07-26 14:12:37 256

原创 剑指offer题解C++【2】

题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路首先计算字符串中的空格数量,若空格数量为count,则替换后的字符串长度增加2*count; 然后从最后一位开始替换字符,若为空格,则依次从后往前替换为’0’ ‘2’ ‘%’,否则不变; 由于已经知道了空格的数量,因此在替换完最

2017-07-26 14:06:18 349

原创 剑指offer题解C++【1】

题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 时间限制:1秒 空间限制:32768K 解题思路从右上角开始找,如果目标数比当前位置小,则左移;如果目标数比当前位置大,则右移;如果相等,说明目标存在;超出范围则说明目标不存在;代码class Solution {pu

2017-07-25 23:37:13 567

转载 CS231n课程笔记翻译:线性分类笔记

译者注:本文智能单元首发,译自斯坦福CS231n课程笔记Linear Classification Note,课程教师Andrej Karpathy授权翻译。本篇教程由杜客翻译完成,巩子嘉和堃堃进行校对修改。译文含公式和代码,建议PC端阅读。原文如下内容列表:线性分类器简介线性评分函数阐明线性分类器损失函数 多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交

2017-07-21 20:35:49 728

转载 CS231n课程笔记翻译:图像分类笔记

译者注:本文智能单元首发,译自斯坦福CS231n课程笔记image classification notes,由课程教师Andrej Karpathy授权进行翻译。本篇教程由杜客翻译完成。ShiqingFan对译文进行了仔细校对,提出了大量修改建议,态度严谨,帮助甚多。巩子嘉对几处术语使用和翻译优化也提出了很好的建议。张欣等亦有帮助。原文如下这是一篇介绍性教程,面向非计算机视觉领域的同学。教程将向

2017-07-21 14:41:29 869

转载 CS231n课程笔记翻译:Python Numpy教程

译者注:本文智能单元首发,翻译自斯坦福CS231n课程笔记Python Numpy Tutorial,由课程教师Andrej Karpathy授权进行翻译。本篇教程由杜客翻译完成,Flood Sung、SunisDown、巩子嘉和一位不愿透露ID的知友对本翻译亦有贡献。原文如下:这篇教程由Justin Johnson创作。我们将使用Python编程语言来完成本课程的所有作业。Pytho

2017-07-21 14:12:13 456

glog-0.3.3.tar.gz

caffe安装编译所需的开源包,由于TGW的存在,特此分享

2016-11-18

MatlabR2015b Crack files

MatlabR2015b 激活文件

2016-11-17

win10 64位 MSVCP120D.dll MSVCR120D.dll

win10 64位操作系统visual studio 2015下opencv报错缺失的文件

2016-10-21

空空如也

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

TA关注的人

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