- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 C++ 异常 exception throw
之前很少用到C++的exception机制,看到C++ Primer的第6章,简要的介绍一下:首先,C++ 的异常处理包括: throw表达式。如:#include#includeusing namespace std;int main(){ int x; while(cin >> x) { if (x == 0) { throw runtime_error(
2014-02-24 21:45:53 6142
原创 二叉查找树——Validate Binary Search Tree
Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the node's key.Th
2014-02-23 17:28:26 1252
原创 算法 -- 计算逆序数 , significant逆序数 归并排序
求解逆序数是归并排序的副产品。这学期见过很多版本的逆序数,大多数的版本都曲解了“significant逆序数”(后面称为显著逆序数),也就是说:if i k*A[j], (1 那么再看其数值大的程度,就可以决定是否是“显著逆序数”。我实现了下面的版本,注释中讲解的是我在编写程序时遇到的问题://此处使用的归并排序是采用的不使用哨兵元素的形式。//如果i 3*A[j]时才
2014-02-23 16:43:29 2173
原创 [leetcode] Recover Binary Search Tree
题目描述:Two elements of a binary search tree (BST) are swapped by mistake.Recover the tree without changing its structure.Note:A solution using O(n) space is pretty straight forward. Coul
2014-02-22 20:53:50 1238 1
原创 字符串匹配 之 KMP详解
最近看了算法导论的KMP算法的介绍,笔者实现了该算法,并大致懂得了该算法的思想。现大致总结如下:字符串匹配:即是在一个目标串中寻找某一个模式出现的位置:例如:在目标串 S = “ababababca” 中寻找模式串P = “ab”。返回“ab”的位移为0,2,4,6。传统的做法:
2014-02-16 16:17:27 1141
原创 数据结构 二叉查找树 BST
二叉查找树:又称为 二叉排序树 二叉搜索树首先,这几个名字都让我觉得混乱,简单地讲,二叉树的重要的应用便是查找了,因此“查找”与“搜索”二字等价,可以理解。那么又由于二叉搜索树的中序遍历是有序的,因此又叫做二叉排序树。接下来,步入正题:[摘自维基百科]二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(s
2014-02-13 21:41:20 1581
原创 层次遍历 二叉树
对于二叉树的层次遍历,本人实现了递归版本与非递归的版本。要求对于给定的二叉树, 输出的结果为[ [ 1 ] , [ 2 , 3 ] , [4 , 5 ] ] 注意:只需要将各个层之间的界限确定清楚就好了。迭代版本:(使用队列,利用空指针作为层与层之间分隔的标记)。/** * Definition for binary tree * struct
2014-02-06 16:24:30 1248 1
原创 Max Points in a line[修改]
题目描述:Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.分析:点是否共线,从斜率入手。注意:在提交的过程中,我发现,如果给定的n个点中有重复的点,也是当做不同的点来计算的。例如:如果所有的n个点一样的话,那么共线的点的个数就
2014-02-05 14:09:45 1525
原创 [data structure] heap 堆
定义:1 (二叉) 堆是一颗完全二叉树。2 任何一个节点都小于它的后裔节点。(最小堆),相应的,最大堆中的任何一个节点大于它的后裔节点。由于二叉堆是一个完全二叉树,因此对于二叉堆中的任何一个节点i,它的子节点的编号为:A[ left ] = A[ 2*i + 1 ] ; A[ right ] = A [ 2*i + 2 ] (注:这是与实
2014-02-02 14:50:53 1796
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人