notes
文章平均质量分 82
happy_XYY
机器学习 C++ Java 算法
展开
-
基R-CNN的物体检测
主要是讲解2014年CVPR上的经典paper:《Richfeature hierarchies for Accurate Object Detection and Segmentation 》,这篇论文的算法思想又被称之为:R-CNN(Regions with Convolutional NeuralNetwork Features)这篇paper的思想,改变了物体检测的总思路,现在好多文献关于深度学习的物体检测的算法,基本上都是继承了这个思想,所以学习经典算法,有助于我们以后学习物体检测的其它pape转载 2016-11-29 10:02:46 · 1793 阅读 · 0 评论 -
海量数据处理:算法
海量信息即大规模数据,随着互联网技术的发展,互联网上的信息越来越多,如何从海量信息中提取有用信息成为当前互联网技术发展必须面对的问题。在海量数据中提取信息,不同于常规量级数据中提取信息,在海量信息中提取有用数据,会存在以下几个方面的问题:(1)数据量过大,数据中什么情况都可能存在,如果信息数量只有20条,人工可以逐条进行查找、比对,可是当数据规模扩展到上百条、数千条、数亿条,甚至更多时,仅仅只通过手工已经无法解原创 2016-06-20 21:54:08 · 9849 阅读 · 0 评论 -
剑指offer-6-面试43:n 个骰子的点数()
题目 分析 测试用例代码 本题考点 题目 分析 测试用例&代码 本题考点原创 2016-07-17 14:44:02 · 767 阅读 · 0 评论 -
数据结构与算法:图
图论是计算机研究的一个重要分支,有关图论的内容可以写很多,但正是因为图论的这种复杂性,在程序员面试笔试中,有关图论的问题并不多见,考察的也并不深奥。本节内容涉及一些经常出现的图论问题,并给予详细的解答。原创 2016-06-19 11:30:30 · 1709 阅读 · 0 评论 -
剑指offer-5-面试36:数组中的逆序对(时间效率和空间效率的平衡)
题目 分析 测试用例代码 本题考点 题目 在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 分析 看到这个题目,我们第一反应是顺序扫描整个数组。每扫描到一个数字的时候,逐个比较该数字和它后面的数字的大小。如果后面的数字比它小,则这两个数字就组成了一个逆序对。假设数组中含有 n 个数字。由于每个数字都要和O(n)个数原创 2016-07-15 15:39:37 · 899 阅读 · 0 评论 -
剑指offer-5-面试35:第一个只出现一次的字符
题目 分析 测试用例代码 本题考点 本题扩展相关题目 题目 在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出‘b’ 分析 最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)原创 2016-07-15 13:25:24 · 769 阅读 · 0 评论 -
数据结构与算法:二叉树
二叉树是一种非常常见并且实用的数据结构,它结合了有序数组与链表的优点。在二叉树中查找数据与在数组中查找数据一样快,在二叉树中添加、删除数据的速度也和在链表中一样高效,所以有关二叉树的相关技术一直是程序员面试笔试中必考的知识点。原创 2016-06-18 10:57:38 · 4605 阅读 · 0 评论 -
剑指offer-5-面试34:丑数(优化时间和空间效率)
题目 分析 逐个判断每个整数是不是丑数的解法直观但不够高效创建数组保存已经找到的丑数用空间换时间的解法 测试用例代码 本题考点 题目 我们把只包含因子2、3和5的数称作丑数(Ugly Number)。求按从小到大的顺序的第1500个丑数。例如 6、8都是丑数,但14不是,因为它包含因子7.习惯上我们把 1 当做第一个丑数。 分析 逐个判断每个整数是不是丑数的解法,直观但不够高效所谓一个原创 2016-07-15 10:35:12 · 1028 阅读 · 0 评论 -
剑指offer-5-面试33:把数组排成最小的数(时间效率)
题目 分析 测试用例代码 本题考点 题目 输入一个正整数数组,把数组里所有数字拼接起来拍成一个树,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这 3 个数字能排成的最小数字 321323. 分析 最直接的做法是先求出这个数组中所有数字的全排列,然后把每个排列拼起来,最后求出拼起来的数字的最小值。其实,此题可以找到一个排序规则,数组根据这个规则排序之后能排原创 2016-07-14 20:58:09 · 814 阅读 · 0 评论 -
剑指offer-5-面试32:从 1 到 n 整数中 1 出现的次数(时间效率)
题目 分析 不考虑时间效率的解法靠它想拿offer有点 难从数字规律着手明显提高时间效率的解法能让面试官耳目一新 测试用例代码 本题考点 题目 从 1 到 n 整数中 1 出现的次数。题目 :输入一个整数 n ,求从 1 到 n 这n 个整数的十进制表示中1 出现的次数。 例如 输入 12,从 1 到 12 这些整数中包含 1 的数字 有 1, 10 ,11 和 12, 1 一共出现了原创 2016-07-14 17:32:18 · 687 阅读 · 0 评论 -
剑指offer-5-面试31:连续子数组的最大和(时间效率)
题目 分析 测试用例代码 本题考点 题目 输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)例如,输入的数组为 {1,-2, 3, 10,-4,7,2,-5 },和最大的子数组为 {3,10,-4,7,2 },因此输出为该子数组的和 18. 分析 看到 测试用例&代码 本原创 2016-07-14 15:57:14 · 834 阅读 · 0 评论 -
数据结构与算法:排序
排序问题一直是计算机技术研究的重要问题,排序算法的好坏直接影响程序的执行速度和辅助存储空间的占有量,所以各大IT企业在笔试面试中也经常出现有关排序的题目。本节详细分析常见的各种排序算法,并从时间复杂度、空间复杂度、适用情况等多个方面对它们进行综合比较。原创 2016-06-16 22:00:14 · 2571 阅读 · 4 评论 -
数据结构与算法:STL容器
STL(Standard Template Library)是一个C++领域中,用模板技术实现的数据结构和算法库,其中的vector、list、stack、queue等结构不仅拥有更强大的功能,还有了更高的安全性。它体现了泛型编程的思想,具有高度的可重用行、高性能、高移植性原创 2016-06-15 17:15:12 · 1022 阅读 · 0 评论 -
剑指offer-4-解决面试题的思路
面试官谈面试思路画图让抽象问题形象化举例让抽象问题具体化分解让复杂问题简单化面试官谈面试思路编码前讲自己的思路是一个考察指标。合格的应聘者需要在做事之前明白自己要做的事情究竟是什么,以及该怎么做。一开始就编码的人员,除非后面表现非常优秀,否则很容易通不过。可以采用举例子、画图等多种方式,解释清楚问题本身和问题解决方案是关键。画图让抽象问题形象化画图是在面试过程中应聘者用来帮助自己分析、推理的原创 2016-07-12 19:38:00 · 1912 阅读 · 0 评论 -
剑指offer-4-面试26:复杂链表的复制
题目 分析 测试用例代码 本题考点 题目 请实现函数 ComplexListNode* Clone( ComplexListNode* pHead ),复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个 m_pSibling指向链表中的任意结点或者NULL。结点的C++定义如下。struct ComplexListNode{ int原创 2016-07-12 12:44:51 · 819 阅读 · 0 评论 -
剑指offer-3-面试15:链表中倒数第k个结点
题目 分析 测试用例代码 本题考点 相关题目举一反三 题目 输入一个链表,输出该链表中第K个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如,一个链表有6个结点,从头结点开始它们的值依次是 1、2、3、4、5、6 。这个链表的倒数第3个结点是值为4的结点。 链表结点定义如下:struct ListNode{ int m_nValue;原创 2016-07-06 19:17:41 · 579 阅读 · 0 评论 -
剑指offer-3 -高质量的代码
代码质量代码的规范性代码的完整性从3方面确保代码的完整性3种错误处理的方法代码的鲁棒性代码质量下面是几个面试官对代码质量的要求(1)代码的容错能力,对一些特别的输入需要考虑异常状况,考虑资源的回收问题。。。(2)一些基本的知识点,如double 类型的数据比较的问题。if( d1==d2 ) 上述比较有问题,由于精度原因不能用等号判断两个小数是否相等。(3原创 2016-07-06 22:26:10 · 916 阅读 · 0 评论 -
Rich featureHierarchies for accurate object detection and semantic segmentation 阅读笔记
2016-11-22 Rich featureHierarchies for accurate object detection and semantic segmentation建议读此论文之前,先读 基于R_CNN的物体检测 AbstractPASCAL VOC(patternanalysis,statistical modelling and computatio原创 2016-11-29 10:02:21 · 2423 阅读 · 0 评论 -
软件工程:软件工程过程与方法
尽管程序员领着一份不错的薪水,可是他们也同样付出了巨大的精力与时间。随着软件规模的日益庞大,用户需求的不确定以及快速变更,使得软件开发已经不能停留在小作坊式的个人英雄时代,它已经发展为如今的依赖团队合作的行为,常规的管理方法已经无法满足软件开发的实际需求。而软件工程正是研究如何以系统性的、规范化的 、可定量的过程化方法高效开发与管理、维护软件的交叉性学科。原创 2016-06-23 17:29:48 · 25679 阅读 · 3 评论 -
剑指offer-4-面试24:二叉搜索树的后序遍历序列
题目 分析 测试用例代码 本题考点 相关题目举一反三 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 分析 例如,输入数组{ 5,7,6,9,11,10,8},则返回true,因为这个整数序列是图 4.6二叉搜索树的后续遍历结果。如果输入的数组是{7,4,6,5},由于没有那颗二原创 2016-07-08 16:21:18 · 822 阅读 · 0 评论 -
剑指offer-4-面试23:从上往下打印二叉树
题目 分析 本题考点 本题扩展 举一反三 题目 从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如,输入图4.5中的二叉树,则依次打印出8、6、10、5、7、9、11 二叉树结点的定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeN原创 2016-07-08 13:25:38 · 881 阅读 · 0 评论 -
剑指offer-4-面试题22:栈的压入、弹出序列
题目 分析 测试用例代码 本题考点 题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5 是某栈的压栈序列,序列 4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。 分析 解决这个问题很直观的想法就是建立一个辅助栈,把输入的第一个序列中的数字依原创 2016-07-07 22:09:40 · 862 阅读 · 0 评论 -
剑指offer-4-面试21:包含min函数的栈
题目 分析 测试用例代码 本题考点 题目 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及 pop的时间复杂度都是O(1) 分析 看到这个问题,我们第一反应可能时每次压入一个新元素进栈时,将栈里的所有元素排序,让最小的元素位于栈顶,这样就能在O(1)时间得到最小元素了。但这种思路不能保证最后压入栈的元素能够最先出栈,因此这个数据结构原创 2016-07-07 17:17:21 · 729 阅读 · 0 评论 -
剑指offer-4-面试题20:顺时针打印矩阵(画图使抽象问题形象化)
题目 分析 测试用例代码 本题考点 题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵: 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 分析 这道题完全没有涉及复杂的数据结构原创 2016-07-07 15:11:41 · 831 阅读 · 0 评论 -
海量数据处理:经典实例分析
有关海量数据处理的问题,主要有以下3类:top K问题、重复问题、排序问题原创 2016-06-21 16:06:31 · 6540 阅读 · 1 评论 -
剑指offer-4-面试19:二叉树的镜像
题目 分析 测试用例代码 本题考点 题目 完成一个函数,输入一个二叉树,该函数输出它的镜像二叉树结点的定义如下:struct BinaryTreeNode{ int m_nvalue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;}; 分析 树的镜像对很多人来说会是一个新的概念,未必一下子能够想出求树的镜原创 2016-07-07 10:29:46 · 576 阅读 · 0 评论 -
剑指offer-3-面试12:打印1到最大的n位数
题目 分析 跳进面试官陷阱没有考虑大数问题在字符串上模拟数字加法的解法 测试用例代码 本题考点 题目 输入数字n,按顺序打印出从1到最大的n位十进制数。比如,输入3,则打印出1、2、3一直到最大的3位数,即 999。 分析 跳进面试官陷阱,没有考虑大数问题题目看起来很简单。看到这个问题之后,最哦容易想到的办法是先求出最大的n位数,然后用一个循环从1开始原创 2016-07-01 20:51:08 · 1287 阅读 · 0 评论 -
剑指offer-3-面试题11:数值的整数次方(对错误的处理)
题目 分析 自以为题目简单的解法全面但不够高效的解法全面又高效的解法 测试用例代码 本题考点 题目 实现函数 double Power( double base, int exponent ),求base 的 exponent 次方。不得使用库函数,同时不需要考虑大数问题。本题要求实现类似于pow的功能。要求实现特定库函数(特别是处理数值和字符串的函数)的功能,是一类常见的面试题。原创 2016-06-29 22:01:30 · 1283 阅读 · 0 评论 -
剑指offer-3-面试14:调整数组顺序使奇数位于偶数前面
题目 分析 只完成基本功能的解法仅适用于初级程序员考虑可扩展性的解法能秒杀offer 测试用例代码 本题考点 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 分析 如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有数字往前挪动一位。挪完之后在数组原创 2016-07-04 17:33:04 · 668 阅读 · 0 评论 -
剑指offer-3-面试13:在O(1)时间删除链表结点
题目 分析 测试用例代码 本题考点 题目 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。链表结点与函数的定义如下:struct ListNode{ int m_nValue; ListNode *m_pNext;};void DeleteNode( ListNode** pListHead, ListNode*原创 2016-07-03 10:49:58 · 2066 阅读 · 0 评论 -
剑指offer-3-面试16:反转链表
题目 分析 测试用例代码 本题考点 本题扩展 题目 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表的定义如下:struct ListNode{ int m_nkey; ListNode* m_pNext;}; 分析 不难注意到,由于结点 i 的m_pNext指向了它的前一个结点,导致我们无法在链表中遍历到结点 j 。为了避免链表在结点i原创 2016-07-06 19:50:28 · 684 阅读 · 0 评论 -
剑指offer-4-面试25:二叉树中和为某一值的路径
题目 分析 测试用例代码 本题考点 题目 输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的结点形成一条路径。二叉树结点的定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRigh原创 2016-07-11 17:39:18 · 618 阅读 · 0 评论 -
数据结构与算法:字符串
将字符串逆序普通逆序原地逆序不允许临时变量的原地逆序按单词逆序如何实现逆序打印找出一个字符串中第一个只出现一次的字符将字符串逆序给定一个字符串s,将s中的字符顺序颠倒过来,如 s=’abcd’,逆序后变成 s=’dcba’。可以采用多种方法对字符串进行逆序,一下将对其中的一些方法进行分析普通逆序直接分配一个与原字符串等长的字符数组,然后反向拷贝即可原地原创 2016-06-13 20:55:20 · 1467 阅读 · 0 评论 -
数据结构与算法:链表
数组和链表的区别是什么找出单链表中的倒数第k个元素数组和链表的区别是什么数组与链表是两种不同的数据存储方式。链表的特性是在中间任意位置添加元素、删除元素都非常地快,不需要移动其他的元素。通常对于单链表而言,链表中每一个元素都要保存一个指向下一个元素的指针;而对于双链表,每个元素既要保存一个指向下一个元素的指针,还要保存一个指向上一个元素的指针;循环链表则在最后一个元素中保存一个指向原创 2016-06-13 17:34:13 · 1203 阅读 · 0 评论 -
操作系统:用户编程接口(概念)
对于计算机系统而言,操作系统充当着基石的作用,它是连接计算机底层硬件与上层应用软件的桥梁,控制其他程序的运行,并且管理系统相关资源,同时提供配套的系统软件支持。对于专业的程序员而言,掌握一定的操作系统知识比不可少,因为不管面对的是底层嵌入式开发,还是上层的云计算开发,都需要使用到一定的操作系统相关知识。原创 2016-06-01 14:21:58 · 2952 阅读 · 0 评论 -
数据库中的基本概念
在同一个数据集合中,不同的选择条件对应了不同的输出结果,数据库就是这样一种按数据结构来组织、存储和管理数据的仓库。程序或用户可以通过它来进行数据的访问与修改,它是数据存储的灵魂。数据管理经历了人工管理、文件系统到数据库系统3个阶段。数据库是具有逻辑关系和确定意义的数据结合,它能克服传统文件组织所产生的一系列问题,数据冗余小,由于关系型数据库管理系统对于信息查询具有很大的灵活性,并且设计简单,所以已经原创 2016-05-17 21:40:58 · 6467 阅读 · 0 评论 -
操作系统:内存管理(概念)
对于计算机系统而言,操作系统充当着基石的作用,它是连接计算机底层硬件与上层应用软件的桥梁,控制其他程序的运行,并且管理系统相关资源,同时提供配套的系统软件支持。对于专业的程序员而言,掌握一定的操作系统知识比不可少,因为不管面对的是底层嵌入式开发,还是上层的云计算开发,都需要使用到一定的操作系统相关知识。原创 2016-05-30 14:06:31 · 15984 阅读 · 1 评论 -
操作系统:进程管理(概念)
对于计算机系统而言,操作系统充当着基石的作用,它是连接计算机底层硬件与上层应用软件的桥梁,控制其他程序的运行,并且管理系统相关资源,同时提供配套的系统软件支持。对于专业的程序员而言,掌握一定的操作系统知识比不可少,因为不管面对的是底层嵌入式开发,还是上层的云计算开发,都需要使用到一定的操作系统相关知识。原创 2016-05-30 10:40:24 · 1342 阅读 · 0 评论 -
网络与通信:网络其他问题
计算机网络技术是互联网发展的基础。它是计算机技术与通信技术结合的产物,是现在信息技术的一个重要组成部分,而且正朝着数字化、高速化、智能化的方向迅速发展。随着3G、4G技术的兴起,越来越多的企业参与到了网络与通信相关的行业的角逐,网络与通信相关的行业的角逐,网络与通信成为信息化浪潮的先锋。而对于网络相关技术的考察也越来越受到各大IT企业的重视。常用的网络安全防护措施有哪些常用的原创 2016-05-30 09:23:24 · 7763 阅读 · 0 评论 -
网络与通信:网络编程(概念)
计算机网络技术是互联网发展的基础。它是计算机技术与通信技术结合的产物,是现在信息技术的一个重要组成部分,而且正朝着数字化、高速化、智能化的方向迅速发展。随着3G、4G技术的兴起,越来越多的企业参与到了网络与通信相关的行业的角逐,网络与通信相关的行业的角逐,网络与通信成为信息化浪潮的先锋。而对于网络相关技术的考察也越来越受到各大IT企业的重视。如何使用Socket编程socket在计算机中提供了一个通原创 2016-05-26 16:00:06 · 957 阅读 · 0 评论