摘要:
在看百度2013校园招聘笔试题,发现以下这道题有一定的思考价值。题目:有20个数组,每个数组有500个元素,并且是有序排列好的,现在在这20*500个数中找出排名前500的数。这道题一看就知道是个TopK的问题。解决这个问题思路如下:数组是有序的(假设是升序),我们要利用这个特性。首先构造一个大根堆(大小为数组个数即20),将每个数组当前最大的数放入堆中,然后取出大根堆的根,使用一个统计数组(大小为每个数组的长度即500)保存这个数,将这个数从大根堆中删除,接着再向大根堆中放入刚才删除的那个数的上一个数(数组是有序的),如此反复直到统计数组满了为止。#include #include#incl 阅读全文
摘要:
基本方法1、Hash法参考:常见hash算法的原理常见的Hash算法General Purpose Hash Function Algorithms2、Bit-map法利用Bit-map方法解决海量数据的查重和去重问题。/*已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码个数*/ #include #include #include using namespace std; #define minNumber 10000000#define maxNumber 99999999int N = (maxNumber-minNumber+1); //90000000#define 阅读全文
摘要:
Java IO在Client/Server模型中,Server往往需要同时处理大量来自Client的访问请求,因此Server端需采用支持高并发访问的架构。一种简单而又直接的解决方案是“one-thread-per-connection”。这是一种基于阻塞式I/O的多线程模型。在该模型中,Server为每个Client连接创建一个处理线程,每个处理线程阻塞式等待可能达到的数据,一旦数据到达,则立即处理请求、返回处理结果并再次进入等待状态。由于每个Client连接有一个单独的处理线程为其服务,因此可保证良好的响应时间。但当系统负载增大(并发请求增多)时,Server端需要的线程数会增加,这将成为 阅读全文
摘要:
代理设计模式定义:为其他对象提供一种代理以控制对这个对象的访问。代理模式的结构如下图所示。动态代理使用java动态代理机制以巧妙的方式实现了代理模式的设计理念。代理模式示例代码public interface Subject { public void doSomething(); } public class RealSubject implements Subject { public void doSomething() { System.out.println( "call doSomething()" ); } } ... 阅读全文
摘要:
Hadoop使用ant+ivy组织工程,无法直接导入Eclipse中。本文将介绍如何基于Eclipse搭建Hadoop源码环境。准备工作本文使用的操作系统为CentOS。需要的软件版本:hadoop-1.0.4、jdk-1.6.0_43、ant-1.9.2、eclipse3.6。安装与配置JDK安装Eclipse安装与配置Ant下载Hadoop源码以上工作就不细说了,这些没啥难度,注意要配置好jdk和ant的环境变量。编译源码进入hadoop项目的根目录,在bash中执行ant eclipse。命令行结束之后,就可以向Eclipse中导入工程。导入工程File -> Import -&g 阅读全文
摘要:
这里不得不说《冒号课堂——编程范式与OOP思想》真是一本好书,之前已经看过一遍。这几天读Spring源码,发现Spring经常用到回调,对这个概念有些模糊了,于是把这本书翻出来看,算是温故知新。事件驱动式模型事件是程序中令人关注的信息状态上的变化。在基于事件驱动的系统中,事件包括内建事件与用户自定义事件,其中内建事件又分为底层事件和语义事件。此外,事件还有自然事件与合成事件之分。上图是典型的事件驱动模型。事件处理器事先在关注的事件源上注册,事件源不定期地发表事件对象,经过事件管理器的转化(translate)、合并(coalesce)、排队(enqueue)、分派(dispatch)等集中处理 阅读全文
摘要:
1.使用eclipse开发mapreduce程序,发现是跑在本地(LocalRunnerJob),而不是集群。解决方法:将程序打成jar包,然后使用hadoop命令行运行。打包用Fat jar这个工具将第三方jar包一起发布,不要勾选One-JAR.错误:Exception in thread "main" java.lang.IllegalArgumentException: Unable to locate com.simontuffs.onejar.Boot in the java.class.path: consider using -Done-jar.jar. p 阅读全文
摘要:
参考这两篇文章足矣。1、http://blog.163.com/fuhaocn@126/blog/static/366650802012115103842500/2、http://www.cnblogs.com/sunwufan/archive/2012/10/16/2726225.html主要说一下遇到的问题。1、尝试用msysgit的bash通过ssh方式连接到github时,permission denied <publickey>解决方法:http://www.cnblogs.com/igrl/archive/2010/09/17/1829358.html http://w 阅读全文
摘要:
一、Storm集群安装部署 网上关于storm集群部署都大同小异。Storm下载地址:http://storm-project.net Storm项目地址:https://github.com/nathanmarz/storm目前的版本不支持ZooKeeper3.4.5版本,而支持ZooKeeper3.3.3版本。我当时没注意这个问题,部署一直不成功,又不想换zk版本,索性自己编译支持zk3.4.5的源码。暂且不表编译源码的事,先说说Storm集群安装部署的步骤。我主要参考的是这篇文章:http://www.cnblogs.com/panfeng412/archive/2012/11/30/h 阅读全文
摘要:
nodejs学得异常痛苦,在这里将学的东西做一番整理,算是自我安慰吧。根据网上todo示例,用express和mongoose重写了部分代码,主要是业务逻辑这块(CRUD),这个没什么难度。目前尚未解决的问题是:express不能使用ejs layout template,查了好久也没解决,知道的麻烦告诉我一下。一、代码目录二、第三方模块1、express(1)express中文入门指引手册(2)nodejs中文电子书(3)如何在WebStorm中建立express工程?安装expressnpm install express安装成功后在node_modules下会找到express目录,同时 阅读全文