算法
文章平均质量分 52
zhangmengjlu
这个作者很懒,什么都没留下…
展开
-
特征向量的归一化方法
特征向量的几种归一化的方法: 1、线性函数转换,表达式如下: y=(x-MinValue)/(MaxValue-MinValue) 2、对数函数转换,表达式如下: y=log10 (x) 3、反余切函数转换 ,表达式如下: y=arctan(x)*2/PI 4、减去均值,乘以方差: y=(x-means)/ variance转载 2013-08-09 00:35:34 · 6967 阅读 · 0 评论 -
【转载】KMP算法之总结篇
六之再续:KMP算法之总结篇(必懂KMP)作者:July。出处:http://blog.csdn.net/v_JULY_v/。引记 此前一天,一位MS的朋友邀我一起去与他讨论快速排序,红黑树,字典树,B树、后缀树,包括KMP算法,唯独在讲解KMP算法的时候,言语磕磕碰碰,我想,原因有二:1、博客内的东西不常回顾,忘了不少;2、便是我对K转载 2013-07-16 22:12:13 · 453 阅读 · 0 评论 -
镜像问题
探讨镜子反转左右之谜 人人都照镜子,对镜子总是使物体左右反转习以为常。然而,你可知道藏在镜子里的这个谜团,让古往今来的许多大学者为之苦恼,至今尚无定论。 在洗脸、整理服装和发型时,人们经常要照镜子。在这个矗立在我们身边的镜子里,竟然潜藏着让很多人困惑的现象:面对着镜子站立的人,他的姿势与映在镜子里的镜像并不是完全一样的。如果在镜子前举起你的右手,则映在镜子里的你看上去像是举起了转载 2013-07-29 00:54:51 · 2011 阅读 · 0 评论 -
【转载】 扔鸡蛋问题详解(Egg Dropping Puzzle)
更详细的解答在:http://blog.csdn.net/joylnwang/article/details/6769160传说中有一道Google面试题是这样的:你有两个鸡蛋,它们有这样的特性:仅当比某层楼更高摔下时破碎,该层及更低的楼层则毫发无损。毫发无损意味着还可以再次摔下。现在你在一个100层高楼中,要求给出一种策略,用尽量少的实验次数确定这个特定的楼高。1楼就破和10转载 2013-05-28 22:47:15 · 761 阅读 · 0 评论 -
【转载】动态查找树
【转自】 http://blog.csdn.net/bingjing12345/article/details/7830474 http://www.iteye.com/topic/614070此少侠总结的特棒,直接收藏了。我们这个专题介绍的动态查找树主要有: 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)。这四种树都具备下面几个转载 2013-04-18 23:30:27 · 274 阅读 · 0 评论 -
POJ_2513_Trie树+欧拉回路+并查集
Trie树用在字符串查找排序上。http://dongxicheng.org/structure/trietree/1.把木棒的端点考虑为顶点,木棒考虑为边,建立起一个无向图。 2.问题转化为在无向图上判断是否有欧拉回路或者欧拉道路。 3.在无向图上判断是否有欧拉回路或者欧拉道路:欧拉定理+并查集(判断连通性) 4.考虑如何统计每个顶点的度,开始用的是暴力解法,直接转载 2013-03-24 23:08:56 · 534 阅读 · 0 评论 -
计算机科学中最重要的32个算法
A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的最佳路径,并以之为各个地点排定次序。算法以得到的次序访问这些节点。因此,A*搜索算法是最佳优先搜索的范例。集束搜索(又名定向搜索,Beam Search)——最佳优先搜索算法的优化。使用启发式函数评估它检查的每个节点的能力。不过,集束搜索只能在每个深度中发现最前面的m个最符合条转载 2013-08-06 13:36:22 · 304 阅读 · 0 评论 -
【转载】位运算
一个实际问题: 输入:一个字节型数组:如unsigned char A[64*100]。输出:一个字节型数组:如unsigned char B[64*100]。B的计算规则:若A[i]==255,则B[i]=1,否则B[i]=0;要求:用64位数据类型的位运算加速运算。如用64位的数据类型的某种组合位运算方式,来计算B的值。一次可以计算8个字节。 ((x & 0x8转载 2013-07-28 21:58:33 · 482 阅读 · 0 评论 -
【转载】CRF条件随机场简介
CRF(Conditional Random Field) 条件随机场是近几年自然语言处理领域常用的算法之一,常用于句法分析、命名实体识别、词性标注等。在我看来,CRF就像一个反向的隐马尔可夫模型(HMM),两者都是用了马尔科夫链作为隐含变量的概率转移模型,只不过HMM使用隐含变量生成可观测状态,其生成概率有标注集统计得到,是一个生成模型;而CRF反过来通过可观测状态判别隐含变量,其概率亦通过标注转载 2013-06-06 21:40:39 · 930 阅读 · 0 评论 -
【转载】多重数组实现双向链表
有些语言不提供指针与对象数据类型,以下代码通过多重数组实现链表结构及其基本操作。用一个数组空间模拟分配堆。用一个头指针为free的链表来管理自由空间。用栈得push和pop操作来实现释放和分配空间。三个数组next,key和prev分别存储关键字以及指针以下是代码/*Description:在没有显式的指针数据类型时实现双向链表数据结构Date:2012/10/7转载 2013-04-22 20:36:30 · 520 阅读 · 0 评论 -
一些笔试题
1、有三个容器,分别为12L 9L 5L ,起始状态12L装满水,其他两个为空的,如何将12L 9L分别装成6L的水12L 9L 5L 12........0........0 7.........0........5 7.........5........0 2.........5........5 2.........9........1 11....原创 2013-04-09 00:30:38 · 511 阅读 · 0 评论 -
计数排序(Counting Sort)
计数排序假设n个输入元素中的每一个都是介于0-k的整数,此处k为某个整数。计数排序顾名思义离不开计数,我们要计的是输入元素中相同元素出现的次数。对每一个输入元素x,确定小于x的元素的个数,那样排序之后,x在最终输出数组中的位置就可以确定了。例如:如果有17个元素小于x,则x就位于第18个输出的位置上。当然有几个元素相同时,这个方法就略微改进一下,因为不能将它们放在同一个位置上。假定转载 2013-03-22 15:45:11 · 384 阅读 · 0 评论 -
【转载】谱聚类(spectral clustering)
谱聚类(spectral clustering)1. 谱聚类 给你博客园上若干个博客,让你将它们分成K类,你会怎样做?想必有很多方法,本文要介绍的是其中的一种——谱聚类。 聚类的直观解释是根据样本间相似度,将它们分成不同组。谱聚类的思想是将样本看作顶点,样本间的相似度看作带权的边,从而将聚类问题转为图分割问题:找到一种图分割的方法使得连接不同组的边的转载 2013-04-21 20:25:45 · 530 阅读 · 0 评论 -
AP聚类
近邻传播算法(Affinity propagation,AP)是一种新提出的聚类算法,是在数据点的相似度矩阵的基础上进行聚类,通过数据点之间交换信息,最后得到聚类结果。原创 2013-05-06 18:34:18 · 653 阅读 · 0 评论 -
【转载】字符串匹配的KMP算法
字符串匹配的KMP算法 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。转载 2013-09-01 21:20:41 · 291 阅读 · 0 评论 -
【转载】字符串匹配的Boyer-Moore算法
字符串匹配的Boyer-Moore算法 但是,它并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法。 Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了这种算法。 下面,我根据Moore转载 2013-09-01 21:23:43 · 297 阅读 · 0 评论 -
九度OJ1509:树中两个结点的最低公共祖先
LCA(Lowest Common Ancestor)问题#includeusingnamespace std; structNode{ Node *left; Node *right; intvalue; Node(intval)原创 2013-09-03 23:12:02 · 675 阅读 · 0 评论 -
【转载】跳表SkipList的原理和实现
Skip List是在有序链表的基础上进行了扩展,解决了有序链表结构查找特定值困难的问题,查找、插入、删除的时间复杂度都为O(logn)他是一种可以代替平衡树的数据结构。redis和levelDB都是用了它。 下面是skipList的一个介绍,源地址:http://kenby.iteye.com/blog/1187303———————————————转载开始———————转载 2013-09-03 21:09:57 · 591 阅读 · 0 评论 -
树状数组POJ3067
#include#include#define M 2005using namespace std;long long tree[M];//tree[]里面的为部分和,也会达到long long级别long long ans;//否则runtime error //有重边的情况下交点最多可能达到O((k/2)^2)级别struct edge{ int left,right;}原创 2013-09-03 22:07:19 · 513 阅读 · 0 评论 -
google面试题汇总
20. What number comes next in the sequence: 10, 9, 60, 90, 70, 66, ? A) 96 B) 1000000000000000000000000000000000\ 0000000000000000000000000000000000\ 00000000000000000000000原创 2013-09-05 11:54:43 · 501 阅读 · 0 评论 -
A题时的一些结构
vs中对多行加注释快捷键为 先ctrl + K,再ctrl + C取消注释的快捷键为 ctrl + K,再ctrl + U======================================c++ 中文件操作#include#includeifstream ifile; //定义输入文件ifile.open("F:\\Down原创 2013-09-15 00:42:19 · 425 阅读 · 0 评论 -
华容道
http://wenku.baidu.com/view/3f3486176c175f0e7cd137ba.html1、将盘面记为map[5][4]2、将曹操、关羽、张飞、小兵、空格分别记为5种类型3、每次先找到两个空格的位置,然后看空格周围的格子能否移动到空格上,注意曹操、关羽、张飞、小兵的移动的规则是不同的4、用广度遍历的方法枚举当前盘面的下一盘面,同时,为避免死循环,将每一个已原创 2013-09-15 01:58:58 · 525 阅读 · 0 评论 -
【leetcode】Validate Binary Search Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-10-02 19:36:52 · 408 阅读 · 0 评论 -
【leetcode】Generate Parentheses
class Solution {public: vector generateParenthesis(int n) { // Note: The Solution object is instantiated only once and is reused by each test case. vector ans; gen(n,原创 2013-10-02 20:11:02 · 522 阅读 · 0 评论 -
【leetcode】Letter Combinations of a Phone Number
class Solution {public: char map[8][4]={ {'a','b','c','#'}, {'d','e','f','#'}, {'g','h','i','#'}, {'j','k','l','#'}, {'m','n','o','#'}, {'p','原创 2013-10-02 21:21:20 · 614 阅读 · 0 评论 -
【leetcode】Sudoku Solver
class Solution {public: void solveSudoku(vector > &board) { // Note: The Solution object is instantiated only once and is reused by each test case. dfs(board); } bool原创 2013-10-03 00:52:35 · 447 阅读 · 0 评论 -
【leetcode】Word Search
class Solution {public: bool exist(vector > &board, string word) { // Note: The Solution object is instantiated only once and is reused by each test case. if(board.empty())原创 2013-10-03 01:35:35 · 720 阅读 · 0 评论 -
【leetcode】N-Queens
class Solution { vector > ans;public: bool canPlace(int i,int j,vector &tmp,int n)//check { if(i==0) return true;//when place the first line,all cols is OK for(int k=原创 2013-10-03 19:02:47 · 385 阅读 · 0 评论 -
【leetcode】N-Queens II
class Solution {public: int count; bool visited[1000];//visited[k]表示第visited[k]列已经放置过Queue了,不可再用 int col[1000];//col[0]表示第0行中,第col[0]列中放置了一个Queue bool canPlace(int i,int j)原创 2013-10-04 00:10:33 · 340 阅读 · 0 评论 -
【leetcode】Restore IP Addresses
class Solution {public: bool match(string s) { if(s.length()==1&&s>="0"&&s<="9") return true; if(s.length()==2&&s>="10"&&s<="99") return true;原创 2013-10-05 00:14:15 · 434 阅读 · 0 评论 -
【leetcode】Balanced Binary Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-10-05 01:48:41 · 372 阅读 · 0 评论 -
【转载】leetcode中的backtracking
1. backtrackingSudoku是典型的backtracking问题,有关backtracking的问题《The Algorithm Design Manual》 7.1章解释的最详细易懂。Backtracking的定义如下:Backtracking is a systemic way to iterate through all the possible con转载 2013-10-02 23:38:55 · 1610 阅读 · 0 评论 -
【leetcode】Same Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-10-05 00:20:53 · 322 阅读 · 0 评论 -
【leetcode】Path Sum
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-10-05 02:15:54 · 336 阅读 · 0 评论 -
【leetcode】Sum Root to Leaf Numbers
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-10-05 13:15:13 · 443 阅读 · 0 评论 -
【leetcode】Convert Sorted Array to Binary Search Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-10-05 13:29:49 · 498 阅读 · 0 评论 -
【leetcode】Palindrome Partitioning II
class Solution {public: int minCut(string s) { // Start typing your C/C++ solution below // DO NOT write int main() function //palLens(i)表示s[i]-s[n]的cutNum原创 2013-09-30 01:37:09 · 292 阅读 · 0 评论 -
【leetcode】Symmetric Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-10-05 00:34:02 · 331 阅读 · 0 评论 -
【leetcode】Maximum Depth of Binary Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-10-05 00:39:12 · 391 阅读 · 0 评论 -
【leetcode】Minimum Depth of Binary Tree
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti原创 2013-10-05 02:05:22 · 388 阅读 · 0 评论