- 博客(257)
- 资源 (9)
- 收藏
- 关注
原创 leetcode笔记:Binary Tree Level Order Traversal II
这一题与Binary Tree Level Order Traversal的解法一样,只需在其基础上加一句 reverse(ret.begin(),ret.end())。好像编程之美上有这题。
2015-10-22 23:59:51 1857
原创 leetcode笔记:Longest Common Prefix
题目的大意是,给定一组字符串,找出所有字符串的最长公共前缀。对比两个字符串的最长公共前缀,其前缀的长度肯定不会超过两个字符串中较短的长度,设最短的字符串长度为n,那么只要比较这两个字符串的前n个字符即可。
2015-10-21 01:33:03 2021
原创 leetcode笔记:Recover Binary Search Tree
题目的大意是,在二叉排序树中有两个节点被交换了,要求把树恢复成二叉排序树。
2015-10-20 23:45:56 1491
原创 问题解决:部分海康网络摄像头无法实现视频流解码与实时预览
解决部分海康网络摄像头无法实现视频流解码与实时预览的问题。这里使用的海康网络摄像头型号是:DS-2CD852MF-E。
2015-10-20 16:14:32 39243 3
转载 C++中虚函数表的介绍
虚函数(Virtual Function)是通过一张虚函数表来实现的。简称为V-Table。在这个表中,主要是一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其真实反应实际的函数。这样,在有虚函数的类的实例中分配了指向这个表的指针的内存,所以,当用父类的指针来操作一个子类的时候,这张虚函数表就显得尤为重要了,它就像一个地图一样,指明了实际所应该调用的函数。
2015-10-19 23:51:10 880
原创 leetcode笔记:Minimum Depth of Binary Tree
这道题属于二叉树的深度优先搜索,然后返回深度最小的值,可以使用递归或迭代来实现。
2015-10-17 23:20:28 1147
原创 leetcode笔记:Maximum Depth of Binary Tree
这道题和Minimum Depth of Binary Tree一题相似,这个是求最大深度的,就是对二叉树进行递归,然后将子树的最大深度进行返回,最终得到这个树的最大深度。
2015-10-17 23:12:16 1318
原创 leetcode笔记:Evaluate Reverse Polish Notation(逆波兰式的计算)
该题考查逆波兰式,也叫后缀表达式(将运算符写在操作数之后)。假设有一个表达式E,其后缀形式定义如下: 1. 如果E是一个变量或常量,则E的后缀式是E本身; 2. 如果E是E1 operator E2形式的表达式,这里 operator 是如何二元操作符,则E的后缀式为E1, E2, operator; 3. 如果E是 (E1) 形式的表达式,则 E1 的后缀式就是E的后缀式。
2015-10-16 18:24:30 2607
原创 leetcode笔记:Binary Tree Preorder Traversal
该题可使用递归解法,而只要是能用递归,也就是说能用栈来还原递归过程,因此方法不止一种。若使用栈来实现二叉树的遍历:首先在stack中压入当前的root,由于是前序遍历,故树是按照先根,然后左子树和后右子树进行访问,故pop取出一个结点,将它的value加入访问序列。之后压入它的右子树和左子树。直到stack为空。
2015-10-13 23:56:39 1296
原创 leetcode笔记:Largest Rectangle in Histogram
看到这个题目,第一时间应该推出的是直方图中最大矩形的高度必然和某一个柱子的高度相等。因此,容易想到遍历数组,对于某一立柱,往左右两边扩展,看看以当前立柱的高度最多能包含多大的矩形面积,这种方法的时间复杂度为O(n^2),会超时。正确而高效的方法是网上广泛讨论的一种方法,借助栈来实现算法,可达到O(n)的时间复杂度。
2015-10-13 16:54:22 1304
原创 leetcode笔记:String to Integer (atoi)
实现函数atoi()。该问题的内容很长,其实主要是描述一些可能的边界问题。对于整数来说,两大问题就是是正负号的问题和是整数范围是否越界的问题。该题思路比较简单,就是先去掉多余的空格字符,然后读符号(注意正负号都有可能,也有可能没有符号),接下来按顺序读取数字。
2015-10-12 23:58:07 1698
原创 leetcode笔记:Isomorphic Strings
一.题目描述Given two strings s and t, determine if they are isomorphic.Two strings are isomorphic if the characters in s can be replaced to get t.All occurrences of a character must be replaced with another
2015-10-11 22:16:42 1607
原创 leetcode笔记:Implement strStr()
实现strstr()函数。返回needle(关键字)在haystack(字符串)中第一次出现的位置,如果needle不在haystack中,则返回-1。著名的解决算法主要有:KMP、Rabin-Karp和Boyer-Moore算法。
2015-10-09 23:40:58 1607
原创 C/C++语言中关于const用法的总结
const是一个C/C++语言的关键字,它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。
2015-10-09 11:30:19 5775 31
原创 《机器学习实战》学习笔记:利用Adaboost元算法提高分类性能
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器,即弱分类器,然后把这些弱分类器集合起来,构造一个更强的最终分类器,比起弱分类器,这个“强”分类器的错误率会低很多。
2015-10-08 22:30:23 4159 2
原创 leetcode笔记:Path Sum II
这道题与Path Sum类似,不同的是这道题要求找到所有和等于给定值的路径,必须遍历完所有的路径。
2015-10-02 23:46:27 2043
原创 《机器学习实战》学习笔记:支持向量机
支持向量机,就是通过最大化支持向量到分类超平面之间的分类间隔。分类超平面就是我们想要得到的决策曲面;支持向量就是离分类超平面最近的点,而间隔即为支持向量到分类超平面的距离。
2015-10-01 23:59:09 3815
原创 leetcode笔记:Simplify Path
一.题目描述Given an absolute path for a file (Unix-style), simplify it. For example, path = “/home/”, => “/home” path = “/a/./b/../../c/”, => “/c”Corner Cases: • Did you consider the case where path = “
2015-10-01 00:00:00 1626
原创 leetcode笔记:Path Sum
这道题属于深度优先搜索的范畴,通过分别计算二叉树的左右子树是否的和是否等于sum-root->val来进行深度优先搜索,只有到达也结点搜索才结束,因此,递归的退出条件就是到达叶结点,同时,也要考虑输入是空指针的情况,这种情况返回false值。
2015-09-29 23:59:53 1414 2
原创 leetcode笔记:Reorder List
直接按照题目的要求求解,设ListNode *head为待处理的链表,算法包括以下步骤: 1. 将链表head分为前后两部分,前半部分链表head1 和后半部分链表head2; 2. 将后半段链表head12做逆序操作; 3. 合并head1, head2;
2015-09-28 19:59:47 1362
原创 数据结构与算法分析:哈希表
哈希表又叫散列表,是实现字典操作的一种有效数据结构。哈希表的查询效率极高,在没有冲突(后面会介绍)的情况下可做到一次存取便能得到所查记录,在理想情况下,查找一个元素的平均时间为O(1)(最差情况下散列表中查找一个元素的时间与链表中查找的时间相同:O(n),但实际情况中一般散列表的性能是比较好的)。
2015-09-25 07:41:12 8737 9
原创 leetcode笔记:Valid Parentheses
输入一串括号字符串,仅仅包含 (]} 这三种括号。判断输入的括号字符串是不是合法的,合法的输出true,不合法输出false。要求"()"、"[]"、"{}"必须成对使用,或者是像"({[]})"这种层层嵌套但保持对称的,也属于合法。
2015-09-22 13:13:47 1577
原创 leetcode笔记:Roman to Integer
题目要求输入一串罗马数字,输出对应的阿拉伯数字。罗马数字是最古老的数字表示方式,比阿拉伯数组早2000多年,起源于罗马...
2015-09-22 10:18:47 1293
原创 《机器学习实战》学习笔记:Logistic回归&预测疝气病证的死亡率
生活中,人们经常会遇到各种最优化问题,比如如何在最短时间从一个地点到另外一个地点?如何在投入最少的资金而却能得到最高的受益?如何设计一款芯片使其功耗最低而性能最好?这一节就要学习一种最优化算法——Logistic回归...
2015-09-20 19:13:33 5773
转载 读书笔记之《程序员的自我修养——链接、装载与库》
从编译,链接到运行,程序员应该了解自己所写的代码最终是怎么成为程序,又怎样在计算机上运行起来的。
2015-09-20 13:47:36 4200 1
原创 leetcode笔记:Linked List Cycle 2
在Linked List Cycle题目中,使用了两个指针fast与slow检查链表是否有环,该题在此基础上,要求给出链表中环的入口位置,同样需要注意空间复杂度。
2015-09-17 17:29:17 1558
原创 leetcode笔记:Linked List Cycle
题目的意思是给定一个链表的头指针,快速判断一个链表是不是有环,如果有环,返回环的起始位置。该题的经典做法是使用两个指针,两个指针均指向头结点,其中一个是快指针,一次走两步;另一个是慢指针,一次只走一步,当两个指针相遇时,证明有环。
2015-09-17 13:20:19 1514
原创 leetcode笔记:Remove Nth Node From End of List
出一个链表,n是指删除倒数第n个节点。这里提示n的值默认是合法的。不过其实对输入的n进行异常判断也只需要几句语句。使用两个指针,即快/慢指针的概念,其中一个指针先走n步,然后慢指针走,等到快指针走到结尾时,那么慢指针走到了需要删除的节点的前一个位置。
2015-09-17 09:28:59 1379
原创 leetcode笔记:Climbing Stairs(斐波那契数列问题)
题目的大意是,已知有n阶楼梯,每次只能爬1阶或2阶楼梯,问爬到第n阶楼梯共有几种爬法。题目可以看成是,设f(n)表示爬到第n 阶楼梯的方法数,为了爬到第n阶楼梯,有以下两种选择:• 从第f(n-1)阶前进1步;• 从第f(n-2)阶前进2步;则`f(n)`可写成:f(n) = f(n-1) + f(n-2)题目可转化为斐波那契数列的问题。
2015-09-16 00:20:58 3852
原创 《机器学习实战》学习笔记:基于朴素贝叶斯的垃圾邮件过滤
概率是许多机器学习算法的基础,在前面生成决策树的过程中使用了一小部分关于概率的知识,即统计特征在数据集中取某个特定值的次数,然后除以数据集的实例总数,得到特征取该值的概率。之前的基础实验中简单实现了朴素贝叶斯分类器,并正确执行了文本分类,这一节将贝叶斯运用到实际场景,垃圾邮件过滤这一实际应用。
2015-09-15 09:59:28 14719 3
原创 leetcode笔记:Count and Say
题目的具体意思是,根据一个数的读法,组合出下一个数,比如11,读作2(个)1,因此下个数是21;同理,21读作1(个)2、1(个)1,因此下个数是1211...
2015-09-14 09:09:39 1410
原创 leetcode笔记:Set Matrix Zeroes
给定一个数组,若某个元素的值为零,则将该元素所对应的行和列的每个元素都置零。该题对空间复杂度有要求。
2015-09-13 03:07:22 2643
原创 leetcode笔记:Gas Station
环形路线上有N个加油站,每个加油站有汽油gas[i],从每个加油站到下一站消耗汽油cost[i],问从哪个加油站出发能够回到起始点,如果都不能则返回-1,最后题目提到解是唯一的。
2015-09-12 20:58:12 2514
基于SVM与人工神经网络的车牌识别OpenCV&C++实现
2015-05-29
模式识别 Matlab生成模式类
2015-03-13
Harris角点检测
2015-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人