Data Struct & Algorithm
文章平均质量分 79
michaelnju
愿将热血卫吾华!
展开
-
Naive Bayes 朴素贝叶斯的JAVA代码实现
1.关于贝叶斯分类bayes 是一种统计学分类方法,它基于贝叶斯定理,它假定一个属性值对给定类的影响独立于其它属性点的值。该假定称作类条件独立。做次假定是为了简化所需计算,并在此意义下称为“朴素的”。bayes分类的算法大致如下:(1)对于属性值是离散的,并且目标label值也是离散的情况下。分别计算label不同取值的概率,以及样本在label情况下的概率值,然后将这些概率值相乘最后原创 2013-10-11 21:34:14 · 10793 阅读 · 2 评论 -
LeetCode系列字符串操作(一)ZigZag输出,寻找最大不重复字串长度。
ZigZag Conversion The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)原创 2015-04-03 15:45:20 · 1938 阅读 · 0 评论 -
微软线上笔试-2015-4-3(1,2题) Magic Box && Professor Q's Software
微软实习生线上笔试-2015-4-3(1,2题) Magic Box && Professor Q's Software原创 2015-04-04 17:13:56 · 2554 阅读 · 1 评论 -
关于leetcode中游戏相关的几道题。
碰到的第一个题就是九宫格的问题,Valid Sudoku determine if a Sudoku is valid, according to: http://sudoku.com.au/TheRules.aspxThe Sudoku board could be partially filled, where empty cells are fille原创 2015-04-21 16:22:47 · 1072 阅读 · 0 评论 -
关于leetcode中c++ STL 的几道题
1. Valid Parentheses用来判断字符串中的括号是否合法的一道题。注意输入只会有 (, ) , {, }, [, ]这么几种情况。合法的括号是以一定的顺序进行匹配的一些。比如:"()[]', 或者"([])"等,而以"([)]"这种为类型的表示是有错误的。很显然用“stack”来作为数据结构来实现这道题,每一次插入一个元素的时候都进行匹配,如果匹配成功了,那么就将栈顶元素原创 2015-04-20 10:47:10 · 2556 阅读 · 0 评论 -
关于leetcode中对数组O(1)空间消耗操作的几道题
其实这几道题在leetcode中都是比较容易的,但是如果刚开始不理解题意的话可能就会进入陷阱。整数数组中的几个操作如下面所示,无非是怎样进行数组元素的的交换。Remove ElementGiven an array and a value, remove all instances of that value in place and return the new length原创 2015-04-21 09:05:58 · 1533 阅读 · 0 评论 -
关于leetcode中整形溢出的几道题。
题一:String to Integer (atoi) 主要是要注意这里的输入输出的特列:题目的要求是:11. 前面的空格可以忽略;2. 第一个非空格要么是整数,要么是'+','-';如过不是这些就返回0;3. 要考虑整型溢出的情况。大致就是这么三点/*------------------------------------atoi ------------原创 2015-04-17 09:45:55 · 1777 阅读 · 0 评论 -
关于leetcode中链表操作的的几道题。
记录了LeetCode OJ上的关于链表的几道题目。原创 2015-04-18 10:52:16 · 944 阅读 · 0 评论 -
Dynamic Time Warping 动态时间规整算法
转载自:http://www.tuicool.com/articles/Ibeuu2Dynamic Time Warping(DTW)是一种衡量两个时间序列之间的相似度的方法,主要应用在语音识别领域来识别两段语音是否表示同一个单词。1. DTW方法原理在时间序列中,需要比较相似性的两段时间序列的长度可能并不相等,在语音识别领域表现为不同人的语速不同。而且同一个单词内的不同音转载 2015-06-01 20:39:32 · 2667 阅读 · 0 评论 -
乱序序列保序输出
题目:这是一家互联网公司的笔试题,好像没有说保密协议,应该是可以公开的,我也来贡献一下自己的思路和代码。分布式系统中的RPC请求经常出现乱序的情况。写一个算法来将一个乱序的序列保序输出。例如,假设起始序号是1,对于(1, 2, 5, 8, 10, 4, 3, 6, 9, 7)这个序列,输出是:123, 4, 567, 8, 9, 10 上述例子中,3到来原创 2015-04-03 11:11:56 · 1630 阅读 · 0 评论 -
拜占庭将军问题中的签名算法SM,以及有关证明。
拜占庭将军问题中的签名算法,以及证明。原创 2013-12-27 20:07:07 · 8073 阅读 · 5 评论 -
Binary Search Tree(BST)二叉搜索树的实现-java语言
在这篇文章中主要实现的是通过将数组中的元素建成一棵二叉树,并通过中序遍历的方法将数组中的元素按升序输出,实现的语言是java.思路很简单,就是在建树的时候,以根节点(或父节点)为界,使得根节点的做孩子均比根节点小,根节点的与孩子均比根节点大,依次应用到父节点上。完整的代码如下: /* @class Node{} 在定义二叉树之前先定义节点的类 */class Node{ int v原创 2013-10-06 16:11:20 · 2136 阅读 · 0 评论 -
语言统计模型 N-Gram
N-Gram是大词汇连续语音识别中常用的一种语言模型,对中文而言,我们称之为汉语语言模型(CLM, Chinese Language Model)。汉语语言模型利用上下文中相邻词间的搭配信息,在需要把连续无空格的拼音、笔划,或代表字母或笔划的数字,转换成汉字串(即句子)时,可以计算出具有最大概率的句子,从而实现到汉字的自动转换,无需用户手动选择,避开了许多汉字对应一个相同的拼音(或笔划串,或数字串转载 2013-11-19 12:49:47 · 1948 阅读 · 0 评论 -
拜占庭将军问题。口头算法OM(n.m);n=3m+1
一、拜占庭问题的背景这里就不再介绍直接说算法:下面的这个截图是从Lamport发表的论文中截取的:对于这个算法需要说明的是:(1) 在第一轮 将军会把消息发送给所有的副官,第i个副官收到的记为 Vi。如 1(这里代表的是Attack)(2) 在第二轮里面,Li(即第i个副官)会怀疑将军发来的消息Vi是对还是错,于是他会问其余的副官。这样他就会得到剩下的(原创 2013-12-27 15:09:05 · 10562 阅读 · 8 评论 -
有关于递归函数的一些学习记录(Recursion)走楼梯,递归找出最两个数的大公约数,汉诺塔问题
递归函数的定义是指在函数执行的过程中,在函数体中直接或间接的调用了自己,这样的函数就是递归函数。递归函数的使用使得分而制之(Divide and Conquer)的思想得意实现,并在解决循环和一些复杂的求解问题中显示了很好的作用。问题一:说,一个人在爬一个楼梯时,一次可以走一个台阶也可以走两个台阶,问这个人走到第九个台阶有多少种走法?这是我在2013年春参加南京大学计算机系研究原创 2013-09-24 21:59:37 · 2159 阅读 · 1 评论 -
黑球,白球各100,问最后剩下一个是黑球的概率。
解法一:我们可一个用一个set(黑球数量,白球数量)来表示桶中的黑球和白球的个数。从桶中取出球后,只可能是下列三种操作:取出的是两个黑球,则放回一个黑球:(-2, 0) + (1, 0) = (-1, 0)取出的是两个白球,则放回一个黑球:(0, -2) + (1, 0) = (1, -2)取出的是一黑一白,则放回一个白球:(-1, -1) + (0, 1) = (-1,转载 2013-09-23 21:50:53 · 5684 阅读 · 2 评论 -
数字之魅(一) 关于“出现数字1”
节选自编程之美。注意这里部分只给出算法的思想和伪代码。如果仔细想来,其实编程的过程就是和数字打交道的过程,所以对bit很熟练的操作,应该是程序员需要掌握的一项基本技能。下面开始第一个问题:1. 统计一个32位无符号整数中,1出现的个数。其实这道题是一个比较老的题目了,网上有好多解法,我自己在面试的时候也被问过这个问题。但是当时候给出的算法是o(n)的,注意这里的n是数字的位数。原创 2015-03-27 22:09:31 · 800 阅读 · 0 评论 -
ipyhon 与 ipython notebook
在 IPython 的官网(ipython.org)上,介绍其的第一句话便是:IPython 是一个加强版的交互式 Shell。另外很多介绍 IPython 的文章也常以这句话开头,但这句话实在是等于没说。让 IPython 在各种 shell(IDE) 中脱颖而出,成为科学计算标配的,并不是按 Tab 键代码补完、以 % 开头的魔术命令这些大家都有的东西,而是与 matplotlib 这个数据可转载 2016-05-07 19:36:04 · 3326 阅读 · 1 评论