`
mabusyao
  • 浏览: 253281 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
文章列表
k-近邻算法采用测量不同特征值之间的距离的方法来进行分类。   将测试数据的每个特征与样本集中的数据对应的特征进行比较, 然后算法提取样本集中特征最相似的数据(最近邻)的分类标签。最后,选择k个相似数据中出现最多次的分类,作为新数据的分类。   可以看出,这个算法的重点便是选择合适距离算法来计算测试数据与样本数据之间的距离。   常见的距离算法诸如:编辑距离算法,欧式距离算法,ngram算法等等,根据实际的应用场景来决定。   优点: 精度高,对异常值不敏感, 无数据输入假定。  缺点:计算复杂度高,空间复杂度高。要和整个样本集中的所有数据进行比较和计算。 样本不平衡问题。 ...
双指针算法在数组/链表操作中应用广泛,很多时候,为了完成某个目的,常常需要不断的循环检查数组或是链表,又或者需要拷贝出额外的存贮空间来保存中间结果。在其中的一些情况下,如果能够合理的应用数组双指针,则 ...
最近公司在进行Java开发人员的招聘活动,其中有一道面试题是这样的:“请简单描述一下ThreadLocal类的作用。” 结果发现有很多的面试者没有听说过ThreadLocal或者听说过却不知道这个类究竟是用来做什么的。 因此这里写一篇博客来介绍一下ThreadLocal这个类。   在我们日常的项目开发中,ThreadLocal并不是一个经常使用的类。它更多的是被用在诸如Spring,Tomcat或者是Hibernate这些封装了多线程并发的框架或是容器中。而它的目的也正是为了解决多线程并发访问共享数据的问题。   尽管普通开发人员很少有机会涉及到它,了解ThreadLocal也依然 ...

摩尔投票法

摩尔投票法   提问: 给定一个int型数组,找出该数组中出现次数最多的int值。   解决方案: 遍历该数组,统计每个int值出现次数,再遍历该集合,取出出现次数最大的int值。   这算是一个比较经典的解决办法,其中可能会用到Map来做统计。如果不使用Map,则时间复杂度会超过线性复杂度。除此之外,也没有什么特别好的办法。   今天在leetcode上遇到这样一道题目,   提问: 给定一个int型数组,找出该数组中出现次数大于数组长度一半的int值。   解决方案: 遍历该数组,统计每个int值出现次数,再遍历该集合,找出出现次数大于数组长度一半的int值。 ...

Less is just less

2011年,苹果公司在乔布斯老爷子的带领下,推出了一款划时代的产品,iphone4。 它与之前的所有手机都是如此的不同,极致简约,功能强大,符合每个人对完美手机的梦想。   至此整个移动行业被重新洗牌。而移动互联网的时代,也正式宣告到来。 移动端的互联网是如此的不同,以至于业界将其拆分为独立领域,与传统的互联网分庭抗礼,各占半壁江山。 仅仅过去五年,你已经很难再看到一身职业装,端坐在星巴克里,用着苹果笔记本,一副临危正襟,其实在逛淘宝的装逼犯了。如今每一个人都低着头,紧紧的盯着手机,手指不断刷来刷去。 移动互联网时代的到来,催生了一大批籍此而兴旺起来的新兴公司。这些公司 ...
(转自:http://www.tuicool.com/articles/amEBva)   本专题侧重介绍Scala的case class和pattern matching(模式匹配),这俩个两个程序结构对于处理树结构的数据非常有帮助。Scala的case class使得对对象进行模式匹配变得非常方便,简单的来说,Scala的case class就是在普通的类定义前加case这个关键字,然后你可以对这些类来模式匹配。 在我们详细介绍Scala的Case class和模式匹配之前,我们可以通过一个简单的例子来说明一些基本概念。我们设计一个函数库,这个函数库可以用来计算算术表达式,为简单起见, ...
来自(http://blog.163.com/zhaohai_1988/blog/static/2095100852012716105847112/)   最长回文子串            最长回文子串是最初我在网易笔试的时候遇见的,当时天真的把原字符串S倒转过来成为S‘,以为这样就将问题转化成为了求S和S’的最长公共子串
一个同事的问题,下面的代码运行时引用的外部变量TestClosure.count没有初始化: object TestClosure extends App { val words = Array("a","ab","abc") val count = 10 val cnt = words.map{word => (word, count)} cnt.foreach(prin ...

项目沉思录 - 1.1

 1.1 团队缺什么 (团队结构)   什么样的团队才能算是优秀的团队?关于这个问题,真是仁者见仁。但一个为人认知的基本规则是,十个个最优秀的员工,并不能组成一个优秀的团队。   那么一个优秀团队里面究竟应该具备什么样的性质呢?   首先,团队的人数应当受到限制。作为基层管理者,需要至少做到一定程度上的微观管理。然而微观管理是一件很费时费力的事情,即使是最优秀的管理人员,也能难对一个拥有十人以上的团队做到面面俱到。以个人经验来看,大约6到7人就已经是一个小型团队的极限了。 再多的人员,就需要分级的管理。太小则团队功能不全。   以一个5人团队为例,团队中应该有如下这些角色: ...
团队建设   1. 招聘   1.1 团队缺什么 (团队结构)   1.2 一山不容二虎   1.3 化学反应催化剂   1.4 球队的非卖品(围绕核心球员建队)   2. 日常工作   2.1 你的位置   2.2 使用催化剂   2.3 互补结对   2.4 警戒线   2.5 奖罚机制   2.6 工作标准及模板   2.7 以人为本   3. 员工晋升   3.1 害群之马   3.2 先给权力,再给职位   3.3 二等人做一等事   3.4 最高标准     1. 招聘   1.1 构建什么样的团队       1.2 一 ...
我常常会回忆起我职业生涯初期的两个项目: 其中一个庞大,复杂,项目开发人员数量多。项目中每个人似乎都很忙,可却又不完全清楚自己的职责。系统哪怕最边角处作出一点细微的变动,都有可能导致无法预计的结果。人员在不停地变换,每天都有人因为忍受不了无休止的加班而离职。而新员工仅仅经过简单的培训,就开始上岗编码,并被委以重任。项目经理热爱技术,曾经在开会时,花两个小时时间给整个团队讲关于数据库的新技术。同时项目进度一直很紧,开发人员根本没有时间对代码进行优化重构,匆忙上线之后,产品千疮百孔,开发团队整日忙于四处填补漏洞,焦头烂额。另一方面,测试团队非常年轻,对于bug的鉴定,完全依赖开发人员,在整个项目中没 ...
从公司的一个项目中挖出来的工作流引擎的代码,虽然是一个很简单的模型,但却包含了不凡的思想。 对于数据流处理的代码来说,这样的结构有助于将来的维护和扩展。   使用起来也很简单,继承相应的step,实现业务逻辑,并在启动加载的时候将所有的step拼装起来就可以了。   代码很简单,直接贴出来给大家看了:   public interface FlowStep { /** * Executes the flow step * @param context flow process context * @return next step of the flow ...
Any variable stored in ThreadLocal are per thread as we knew, but most people does know that even the thread has been expeired or dead, it's copy of the variable in ThreadLocal won't disappear.   I read the STRUTS 2 code recently, figured out that you should always manually cleanup the variables in ...

JBoss的安全

最近做了一个JBoss安全的项目,对JBoss安全的内容有了一些了解,这些了解仅限于开发阶段,在这里记录下来,免得忘记了。 照着JBoss Admin Guide关于Security的章节来写,不然太乱了。有些就直接翻译过来了。 安全在Java中具备两种意思, 1.客户端:这个应用是从哪里来的,我允许它做些什么。 2.服务端:谁在执行这个应用,我允许他做些什么。 这篇文章里面只讨论第二种情况。 安全是企业级应用的基础。作为开发人员,你需要具备控制谁被允许访问你的应用,以及应用上的何种操作被允许的能力。J2EE Spec为EJB及web组件定义了一种简单的基于role的安全模型。在JBoss ...
看了STRUTS2的源码,了解了它的logging系统,觉得还是蛮有意思的,用到了很多设计模式。   先看类结构图:       1. 工厂方法模式 这个就不说了,直接明了。   2. 伪单例模式 LoggerFactory是个抽象方法,同时里面也包含了对于LoggerFactory的伪单例实现。为什么是伪单例,因为看起来像是单例模式,但其实你也可以创建多个实例:   public static void setLoggerFactory(LoggerFactory factory) { lock.writeLock().lock(); ...
Global site tag (gtag.js) - Google Analytics