- 博客(261)
- 资源 (2)
- 收藏
- 关注
原创 x&(x-1)作用
求下面函数的返回值(微软) -- 统计1的个数-------------------------------------int func(int x){ int countx = 0; while(x) { countx++; x = x&(x-1); } return countx;}
2015-10-21 11:41:01
839
转载 如何判断一个数是不是2的n次幂
题目:给定一个整数num,判断这个整数是否是2的N次方。比如,2,4,8是2的那次方,6,10不是2的N次方。请看下面的程序:public static bool Check1(int num){ int i = 1; while (true) { if (i > num) return fals
2015-10-20 16:56:31
5285
转载 支持向量机通俗导论(理解SVM的三层境界)
支持向量机通俗导论(理解SVM的三层境界)作者:July ;致谢:pluskid、白石、JerryLead。出处:结构之法算法之道blog。http://blog.youkuaiyun.com/v_july_v/article/details/7624837前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困难
2015-10-19 21:02:10
1135
转载 机器学习经典算法详解及Python实现--CART分类决策树、回归树和模型树
摘要:Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Regression Tree),本文介绍了CART用于离散标签分类决策和连续特征回归时的原理。决策树创建过程分析了信息混乱度度量Gini指数、连续和离散特征的特殊处理、连续和离散特征共存时函
2015-10-10 16:24:39
3086
转载 深入浅出PageRank算法
PageRank算法PageRank算法是谷歌曾经独步天下的“倚天剑”,该算法由Larry Page和Sergey Brin在斯坦福大学读研时发明的,论文点击下载: The PageRank Citation Ranking: Bringing Order to the Web。本文首先通过一些参考文献引出问题,然后给出了PageRank的几种实现算法,最后将其推广至在MapR
2015-10-09 21:52:17
2688
转载 Adaboost 算法
一 Boosting 算法的起源boost 算法系列的起源来自于PAC Learnability(PAC 可学习性)。这套理论主要研究的是什么时候一个问题是可被学习的,当然也会探讨针对可学习的问题的具体的学习算法。这套理论是由Valiant提出来的,也因此(还有其他贡献哈)他获得了2010年的图灵奖。PAC 定义了学习算法的强弱 弱
2015-10-06 11:41:32
638
原创 KMP算法初探
关于字符串的算法,很早就知道KMP算法,但是一直没有理解,正好这个假期没多少事,可以好好琢磨一下这个算法。下面结合一道题目来说明KMP算法要解决的问题。【题目】 给定两个字符串str和match,长度分别为N和M。实现一个算法,如果字符串str中含有字串match,则返回match在str中的开始位置,不含有则返回-1。 【举例】 str=“acbc”,match=“bc”。返回2
2015-10-01 11:58:12
463
转载 2014百度校园招聘笔试——求一个字符串的最长回文子串
想到上月28号去百度笔试,遇到了一道题:已知一个N(N很大)长的字符串,求最长的回文子串。看了一些博客,有很多种方法实现,我选其中的两种方法:1.暴力搜索法。即不使用技巧,穷举所有可能。时间复杂度为O(n^3)(时间上最长,不推荐使用),空间复杂度为O(1)。2.由中心向两边扩展法。时间复杂度为O(n^2),空间复杂度为O(1),稍好,并且易于理解,推荐使用。由于没有限制语言,我分
2015-09-28 16:29:57
376
转载 寻找字符串中最长回文——Manacher算法及其Java实现
题目:给一个字符串,找出最长的回文的长度(或求这个回文)。分析:寻找字符串中的回文,有特定的算法来解决,也是本文的主题:Manacher算法,其时间复杂度为O(n)。首先在每两个相邻字符中间插入一个分隔符,当然这个分隔符要在原串中没有出现过。一般可以用‘#’分隔。这样就非常巧妙的将奇数长度回文串与偶数长度回文串统一起来考虑了。然后,我们需要一个辅助数组rad[],用rad[i]表示
2015-09-28 16:26:32
517
转载 基本Kmeans算法介绍及其实现
1.基本Kmeans算法[1][cpp] view plaincopy选择K个点作为初始质心 repeat 将每个点指派到最近的质心,形成K个簇 重新计算每个簇的质心 until 簇不发生变化或达到最大迭代次数 时间复杂度:O(tKmn),其中,t为迭代次数,K为簇的数目,m为记录数,n为维数
2015-09-27 11:00:10
508
原创 求一个字符串的最长重复子串
public class Test{ String reg,left; public String find(String str){ //最长的重复字串,极端情况就比如abcabc,最长重复字串就是abc //即为字符串长度的一半,当然这是极端情况,通常都是小于串长一半的 for(int len=str.length()/2;len>0;len--){ //将字符串分隔为若
2015-09-22 17:24:02
502
转载 操作系统常见面试题
1.什么是进程(Process)和线程(Thread)?有何区别?进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程
2015-09-19 20:50:42
417
转载 输入url到返回页面的过程
最近看到一个题目,是当在浏览器中输入一个url后回车,后台发生了什么?比如输入url后,你看到了百度的首页,那么这一切是如何发生的呢?这个问题之前、最近、我想以后肯定还会被问到,或者问到这样的题目,如果在百度框里输入查询的字符串开始,是怎么返回你需要的东西呢。那这什么个过程呢(这个问题我在之后的博客中在写)?网上各种的说法,不外乎这么几种第一种简单的说呢
2015-09-19 16:59:07
485
原创 求1000!结果末尾有多少个0
public static void main(String[] args) { /*1000的阶乘已经是天文数字了,所以不可能计算出来,再看有多少个0*/ /* 解题思路:两个素数2、5,相乘即可得到10,我们可以认为,有多少组2、5,结尾就有多少个0 */ /* 操作方法:操作1到1000中所有的数,看每个数能被2和5整除几次,并分别统计,假设被2整除8次,被5整除12次,那我们可以认为
2015-09-18 20:30:28
2954
1
转载 聚类分析中距离度量方法比较
聚类分析中如何度量两个对象之间的相似性呢?一般有两种方法,一种是对所有对象作特征投影,另一种则是距离计算。前者主要从直观的图像上反应对象之间的相似度关系,而后者则是通过衡量对象之间的差异度来反应对象之间的相似度关系。 如图(1)所示:假设X坐标轴为时间,Y坐标轴为繁殖率,则可以看出三种不同的物种在不同时间段的繁殖情况,由于分别在10,40,80三个数值附近,因此根
2015-09-16 17:34:41
28096
原创 求二叉树两节点的最小父节点(有父节点指针)
给定一颗二叉树,以及其中的两个node(地址均非空),要求给出这两个node的一个公共父节点,使得这个父节点与两个节点的路径之和最小。描述你程序的最坏时间复杂度,并实现具体函数,函数输入输出请参考如下的函数原型:C++函数原型:1234567strucy TreeNode{
2015-09-13 21:20:06
2254
1
原创 mysql中join的四种连接
MySQL是通过Join语句把两个或多个表连接起来,而生成的新表可以被当成表来使用,也可以保存起来。Join语句的含义是把两张表的属性通过它们的值组合在一起.1. 内连接表A与表B进行内连接,就是将表A的某属性与表B的相应属性进行逐行比较,找出满足条件的组合,并按照输出需求合并成一行。有两种:相等连接和自然连接。例如——相等连接(最常用)查询的是列出所有城市的所属国家以及独
2015-09-13 12:06:48
1719
原创 数据挖掘常见面试题
统计知识给定一个分类器p,它有0.5的概率输出1,0.5的概率输出0。Q1:如何生成一个分类器使该分类器输出1的概率为0.25,输出0的概率为0.75? Ans:连续进行两次分类,两次结果均为1则输出1,其余情况(10,01,00)均输出0。Q2:如何生成一个分类器使该分类器输出1的概率为0.3,输出0的概率为0.7? Tip:小明正在做一道选择题,问题只有A、
2015-09-11 20:29:54
1586
转载 两个有序数组中找第N个数
给定两个有序的数组,长度分别为m和n,求这两个数组中的第K个元素。 问题分析: 1. 把 A 平均分为前后两个部分,前部分有 x 个元素,后部分有 n-x 个元素(由于 A 是有序的,所以后一部分的所有元素都大于前一部分)。A[x] 为 A 的后一部分中的第一个元素。 2. 同理把 B 也平均分成前后两个部分,前部分有 y 个元素,后部分有 m-y
2015-09-11 16:12:03
770
原创 图拓扑排序的两种方法实现
方法一:(1)在有向图中选一个没有前驱(入度为0)的点输出。(2)从图中删除该顶点和所有以它为尾的弧。重复以上步骤,直至全部顶点均已输出,或者当前图中不存在五前驱的顶点为止。在实现中,我们可以用一个队列存入所有入度为0的顶点。然后依次删除这些顶点,和其对应的边,如果对应边删除后其终点的入度减为0者也将其存入队列中,如此循环下去,直到队列为空。最后比较列表
2015-09-10 11:13:45
2529
转载 java 图的拓扑排序(利用Vector存储)
Stack类:Java代码 package com.javaeye.rsrt; /** * 栈,遵循先进后出的原则,用来保存元素 * * @author nishiting * */ public class Stack { private int[] st; private i
2015-09-08 20:44:54
433
转载 红黑树
定义红黑树主要像是对2-3查找树进行编码,尤其是对2-3查找树中的3-nodes节点添加额外的信息。红黑树中将节点之间的链接分为两种不同类型,红色链接,他用来链接两个2-nodes节点来表示一个3-nodes节点。黑色链接用来链接普通的2-3节点。特别的,使用红色链接的两个2-nodes来表示一个3-nodes节点,并且向左倾斜,即一个2-node是另一个2-node的左子节点。这种做法的
2015-09-06 20:49:57
267
转载 平衡查找树之2-3树
定义和二叉树不一样,2-3树运行每个节点保存1个或者两个的值。对于普通的2节点(2-node),他保存1个key和左右两个自己点。对应3节点(3-node),保存两个Key,2-3查找树的定义如下:1. 要么为空,要么:2. 对于2节点,该节点保存一个key及对应value,以及两个指向左右节点的节点,左节点也是一个2-3节点,所有的值都比key有效,有节点也是一个2-3节
2015-09-06 19:18:18
363
原创 数据结构--图的相关操作实现
存储结构要存储一个图,我们知道图既有结点,又有边,对于有权图来说,每条边上还带有权值。常用的图的存储结构主要有以下二种:邻接矩阵邻接表邻接矩阵我们知道,要表示结点,我们可以用一个一维数组来表示,然而对于结点和结点之间的关系,则无法简单地用一维数组来表示了,我们可以用二维数组来表示,也就是一个矩阵形式的表示方法。我们假设A是这个二维数组,那么A中的一个元素ai
2015-09-04 19:13:11
811
原创 java类型转换易犯的错误
问题引入:byte a=1;byte b=3;byte c=a+b;byte d=1+3; 为什么byte c=a+b;这个不对。byte d=1+3;这个却没有错误 解答:+操作会将变量转成int1+3编译器会自动转成4做加法运算的时候,数据类型是首先转变成int这样就对了:byte c=(byte)(a+b);
2015-08-31 15:16:50
1065
转载 二叉树的java实现
下面是实现的具体代码,输入是工程目录下input.txt,文件,输入时“#”表示节点为空。[java] view plaincopypackage com.algorithm.tree; import java.io.File; import java.io.FileNotFoundException; import
2015-08-30 21:05:51
377
转载 二叉树常见面试题
树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握,如非递归遍历节点等等。本文努力对二叉树相关题目做一个较全的整理总结,希望对找工作的同学有所帮助。
2015-08-30 17:29:03
615
转载 java集合框架小结
1、Java容器类库的简化图,下面是集合类库更加完备的图。包括抽象类和遗留构件(不包括Queue的实现): 2、ArrayList初始化时不可指定容量,如果以new ArrayList()方式创建时,初始容量为10个;如果以new ArrayList(Collection c)初始化时,容量为c.size()*1.1,即增加10%的容量;当向ArrayList中添加一个元素时,先进
2015-08-30 16:50:33
266
转载 IP地址转整数
一、应用范围 一般用在登录限制、查找IP所在城市等需求中,windows的ping命令也支持整数形式的IP。二、关键技术点 将IP地址转化成整数的方法如下: 1、通过String的indexOf方法找出IP字符串中的点"."的位置。 2、根据点的位置,使用String的substring方法把IP字符串分成4段。 3、使用Long的pars
2015-08-29 20:14:50
472
转载 求二叉树中两个节点的最小公共祖先(LCA)
题目要求:求二叉树中两个节点p,q的最低公共祖先节点 首先,题目中没有明确说明节点的结构,所以思考了一会然后问面试官节点有没有父指针,面试官说有没有父指针有影响吗?我说有,然后他笑着说你来说说看。当时,只做出来有父指针的情况,没有父指针的情况压根想不出来。后来会实验室静下心来很快就想到了思路。这里分这两种情况讨论: 1. 二叉树节点具有父指针
2015-08-29 19:56:57
1283
转载 Java程序员面试中的多线程问题
很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了Java线程方面一些典型的问题,这些问题经常被高级工程师所问到。 0、Java中多线程同步是什么?在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个Java线程在修改一个共享变量时,另外一个
2015-08-24 19:22:26
334
转载 字符串转整数的java实现
问题:把一个字符串转成一个整数。思路:其实,这道题考的不是怎么去把一个数转成一个整数,而是考你是否能够把所有的情况都考虑完全,我们应该考虑的因素如下:1. 这个字符串是否是空的。2. 这个字符串是否有非法字符(非0-9之间的字符)。3.这个数是正数或者是负数的情况(第一个字符是否为+,-)。4. 是否存在溢出的情况(这个比较难考虑到)。
2015-08-22 19:21:50
565
原创 沿对角线方向打印数组
二维数组(N*N),沿对角线方向,从右上角打印到左下角如N=4: 4*4二维数组 { 1 2 3 4 } { 5 6 7 8 } { 9 10 11 12 } {13 14 15 16 } 打印顺序 4 3 8 2 7 12 1 6 11 16 5 10 15 9 14 13 public class Test { publi
2015-08-22 16:39:24
683
转载 关于C的未定义行为
对于C的初学者来说,被要求做下面的这种题目真的是脑残的不能再脑残的行为。但是很多C初级教程——居然都有这样的题。最典型的例子就是a+=a++;这种情况下,a最后到底等于多少了?编译器应该如何理解a+=a++呢?首先是展开,a=a+a++;然后分别计算a和a++的值,把它们相加,然后把结果赋给a。但是这里有一个问题,就是执行完a++之后,a++的值等
2015-08-17 20:54:36
473
转载 左旋字符串
/** * 定义字符串左旋转操作:把字符串前面的若干个字符移动到字符串尾部,如把字符串"abcdef"左旋转 2位得到字符串 "cdefab"。 * 请实现字符串左旋转的函数,要求对长度为 n 的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。 * @author Administrator * */public class LeftShiftString { /
2015-08-17 10:33:55
365
转载 java对象引用和值引用,特殊的String!
以前就知道JAVA对象分对象引用和值引用,并且还知道8种基础数据类型,即引用时是值引用的数据类型,比如int,short,long,byte,float,double,char,boolean,其它都是对象引用。可是其它的对象引用我一直都以为跟c里面是一样的指针传递,直到今天才发现原来JAVA里面还是别有一番天地的。 1. 方法调用的时候,并不是类似c的指针传递,而是引用的复制
2015-08-16 21:12:05
389
转载 Java内存分配全面浅析
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。 进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM
2015-08-16 20:55:11
295
原创 字符串全排列算法理解与java实现
字符串全排列算法问题描述:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba解题思路(这部分参考http://www.cnblogs.com/cxjchen/p/3932949.html):如果能生成n-1个元素的全排列,就能生成n个元素的全排列。对于只有一个元素的集合,可以
2015-08-13 19:51:16
1926
转载 栈和队列的java实现
栈单链表实现:没有长度限制,并且出栈和入栈速度都很快[java] view plaincopypublic class LinkedList { private class Data{ private Object obj; private Data next = null;
2015-08-12 16:36:48
382
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人