自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

也谈走台阶问题

问题刚才在首页看到一篇博客,说的是腾讯的一道面试题:一个楼梯有50个台阶,每一步可以走一个台阶,也可以走两个台阶,请问走完这个楼梯共有多少种方法?博主把这题分析的很麻烦。引来很多人围观。我以前也碰到过这个问题。写出来和大家分享一下。举个例子,假设有3个台阶,则有三种走法:分别是,1-1-1, 1-2, 2-1。分析很简单的一道题,学过组合数学的人很快就能想到,这是一个递推关...

2012-08-22 10:59:00 201

最大公约数(Gcd)两种算法(Euclid && Stein)

转载自:http://www.cnblogs.com/drizzlecrj/archive/2007/09/14/892340.html很老的东东了,其实也没啥好整理的,网上很多资料了,就当备用把:-)1. 欧几里德算法和扩展欧几里德算法欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = g...

2012-08-20 10:30:00 261

排序算法大赏(未完待续)

一、前言排序算法也是面试中常常提及的内容,问的最多的应该是快速排序、堆排序。这些排序算法很基础,但是如果平时不怎么写代码的话,面试的时候总会出现各种bug。虽然思想都知道,但是就是写不出来。本文打算对各种排序算法进行一个汇总,像插入排序、冒泡排序、选择排序等就简单的介绍,重点关注快速排序和堆排序。需要提到的一点就是:插入排序,冒泡排序,归并排序,计数排序都是稳定的排序,而其他排序则都是不稳定的...

2012-08-19 22:18:00 193

链表合并算法

题目已知两个有序链表,试合并这两个链表,使得合并后的链表仍然有序(注:这两个链表没有公共结点,即不交叉)。分析既然两个链表都是有序的,所以合并它们跟合并两个有序数组没有多少区别,只是链表操作涉及到指针,不能大意。方法一:非递归方法使用2个指针list1和list2分别遍历两个链表,将较小值结点归并到结果链表中。如果有一个链表归并结束后另一个链表还有结点,则把另一个链表剩下部...

2012-08-19 20:26:00 285

二分查找之谜题

一、前言二分查找本身是个简单的算法,但是正是因为其简单,更容易写错。甚至于在二分查找算法刚出现的时候,也是存在bug的(溢出的bug),这个bug直到几十年后才修复(见《编程珠玑》)。本文打算对二分查找算法进行总结,并对由二分查找引申出来的问题进行分析和汇总。若有错误,请不吝赐教。二、二分查找是这样的相信大家都知道二分查找的基本算法,如下所示,这就是二分查找算法:int bi...

2012-08-19 16:19:00 106

有序的循环链表中插入结点

题目给定一个有序的循环链表,在其中插入一个值,保持该循环链表依然有序。分析首先看下循环链表的结构,如下图所示为一个循环链表,其尾结点指向头结点,从而形成一个循环。给定的链表结点可以是链表任意一个结点,这个结点不一定是链表头结点,从而这也增加了该题的难度。此时若是要在链表中插入4,则插入后的链表如下所示:可以看到插入4后,链表依然有序。在解决这个问题前,先来看一个简化...

2012-08-17 21:43:00 1071

链表相交问题

题目:给定两个单向链表的头结点指针,比如为h1和h2,判断这两个链表是否相交。分析:一、先来分析链表不存在环的情况。编程之美和JULY的博文闲话链表追赶问题上对该题都有详述,拿来用了。1.直接循环判断第一个链表的每个节点是否在第二个链表中。但,这种方法的时间复杂度为O(Length(h1) * Length(h2))。显然,我们得找到一种更为有效的方法,至少不能是O(N...

2012-08-17 20:09:00 106

输出链表倒数第K个结点

题目描述:输入一个单向链表,输出该链表中倒数第k个结点。分析:方法1:要输出链表中的倒数第K个结点,最自然的想法是先求出链表的长度N,然后从头遍历链表输出链表的第N-K+1个结点即可。注意本题数字从1计数,也就是说倒数第1个节点是链表最后一个结点。例如链表长度为4,需要输出倒数第2个结点,则我们只需要从头开始输出链表第3个结点即可。该思路代码如下:struct node {...

2012-08-17 15:26:00 173

字符串函数汇总

面试中常常会要求写一些基本的库函数,尤其以字符串库函数考的最多,所以本文汇总了一些常见的字符串库函数的实现。此外,把与内存相关的操作函数也汇总到了一起。//求字符串长度int strlen(const char *s) { int n = 0; while (*s++ != '\0') n++; return n;}//字符串拷贝,返回指针是为了实现链式操作,如strle...

2012-08-15 10:56:00 84

将有序单链表转换为平衡的二叉搜索树

题目:给定一个升序排列的有序单链表,将其转换为一棵平衡的二叉搜索树。分析:单链表的结点结构如下。struct node { int data; struct node *next;};由于单链表升序排列,可以参照前面的文章将有序数组转换为平衡二叉搜索树, 先求的链表中的结点的值保存在数组中,然后采用相同的方法实现,时间复杂度为O(N)。当然也可以不额外...

2012-08-15 08:51:00 580

整数分解使得积最大

题目:给一个数n,你可以将这个数拆成任意个整数之和。找出在所有的拆分方式中,拆出来的所有的数的积的最大值(也包括只拆成一个数,如2拆成2最大)。如 n = 6, 可以拆成3 * 3 = 9 2 * 4 = 82 * 2 * 2 = 8 1 * 1 * 4 = 41 * 1 * 2 * 2 = 4 ...最大值为9。分析:比较容易想到的是使用动态...

2012-08-14 19:16:00 414

java多线程环境单例模式实现详解

Abstract 在开发中,如果某个实例的创建需要消耗很多系统资源,那么我们通常会使用惰性加载机制,也就是说只有当使用到这个实例的时候才会创建这个实例,这个好处在单例模式中得到了广泛应用。这个机制在single-threaded环境下的实现非常简单,然而在multi-threaded环境下却存在隐患。本文重点介绍惰性加载机制以及其在多线程环境下的使用方法。(作者numberzero...

2012-08-14 11:41:00 88

素数算法

题目:写一个程序,找出前N个素数。比如N为100,则找出前100个素数。分析最基本的想法就是对1到N得每个数进行判断,如果是素数则输出。一种改进的方法是不需要对1到N所有的数都进行判断,因为偶数肯定不是素数,而奇数可能是素数,可能不是。2,3,5都是素数,这可以直接得到。然后我们可以跳过2与3的倍数,即对于6n,6n+1, 6n+2, 6n+3, 6n+4, 6n+5,我们只需要判...

2012-08-13 15:15:00 114

腾讯的一道面试题—不用除法求数字乘积

题目:已知一个包含N个元素的数组A[N],试求出这样一个数组OUTPUT[N],其中OUTPUT[I]的值为数组A中除了A[i]的其他所有元素的乘积。注意,不能使用除法。时间复杂度必须为O(N)。例如OUTPUT[0]的值为A[1]*A[2]...A[N], OUTPUT[1]的值为A[0]*A[2]...A[N]。假定数组A={4, 3, 2, 1, 2},则OUTPUT={12, ...

2012-07-31 21:26:00 211

经典shell面试题整理

一、取出/etc/passwd文件中shell出现的次数问题:下面是一个/etc/passwd文件的部分内容。题目要求取出shell并统计次数,shell是指后面的/bin/bash,/sbin/nologin等,如下面/bin/bash出现12次,/sbin/nologin出现3次。hyn:x:525:500::/home/hyn:/bin/bashljlxx:x:526:500::...

2012-07-31 16:03:00 1194

翻转句子中单词的顺序

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。分析:由于编写字符串相关代码能够反映程序员的编程能力和编程习惯,与字符串相关的问题一直是程序员笔试、面试题的热门题目。本题也曾多次受到包括微软在内的大量公司的青睐。...

2012-07-29 22:07:00 88

判断一个整数是否是回文数

问题判定一个正整数是否是一个回文数。例如12121是回文数,而1231不是回文数。解法1:转换成字符串再判断要判断一个整数是否是回文数,最自然的想法是把整数转换成一个字符串,然后根据回文的对称特性进行判断。数字转换为字符串可以通过itoa函数实现,判断字符串是否为回文字符串代码如下:bool isPalindrome(string &str){ int ...

2012-07-29 16:47:00 1570

从一列数中筛除尽可能少的数,使得从左往右看这些数是从小到大再从大到小...

问题:从一列数中筛除尽可能少的数使得从左往右看,这些数是从小到大再从大到小的(网易)。解法:这是双端 LIS 问题,用 DP 的思想可解,目标规划函数 max{ b[i] + c[i] }, 其中 b[i] 为从左到右, 0 ~ i 个数之间满足递增的数字个数; c[i] 为从右到左, n-1 ~ i 个数之间满足递增的数字个数。最后结果为 n - max + 1。其中 DP 的时候,...

2012-07-29 15:52:00 213

最长递增子序列

问题给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度为6的数组A{5, 6, 7, 1, 2, 8},则其最长的单调递增子序列为{5,6,7,8},长度为4.解法1:最长公共子序列法这个问题可以转换为最长公共子序列问题。如例子中的数组A{5,6, 7, 1, 2, 8},则我们排序该数组得到数组A‘{1, 2, 5, 6, 7,...

2012-07-29 15:25:00 4335

将有序数组转换为平衡二叉搜索树

问题给定一个有序数组,数组元素升序排列,试将该数组转换为一棵平衡二叉搜索树(Balanced Binary Search Tree)。思路这个问题用递归很容易解出来。考虑下面一棵二叉搜索树:这是一棵平衡的二叉搜索树,所谓平衡的定义,就是指二叉树的子树高度之差不能超过1。如果要从一个有序数组中选择一个元素作为根结点,应该选择哪个元素呢?我们应该选择有序数组的中间元素作为根结点...

2012-07-26 08:27:00 264

Java泛型编程最全总结

由于发到iteye上面格式乱了,需要的朋友可以下载附件。 JAVA泛型编程笔记1介绍Java泛型编程是JDK1.5版本后引入的。泛型让编程人员能够使用类型抽象,通常用于集合里面。下面是一个不用泛型例子: List myIntList=new LinkedList(); //1myIntList.add(newInteger(0)); //2Integer x...

2012-05-12 12:33:12 190

原创 解决ubuntu下pdf乱码问题

两行命令即可解决ubuntu下pdf文件的乱码问题。sudo apt-get install poppler-datasudo mv /etc/fonts/conf.d/49-sansserif.conf /etc/fonts/conf.d/49-sansserif.conf.backup

2012-03-21 21:13:46 120

原创 重装Win8或者Win7后恢复Ubuntu启动项

最近出了windows8的消费者预览版,一时手痒就装上了。本来的系统是win7+ubuntu11.10双系统,ubuntu是直接硬盘安装在G盘,引导用的就是默认的grub。装了win8后,覆盖了ubuntu的启动项,所以在网上搜了下资料解决了。步骤如下:找一张ubuntu的光盘(不限版本,11.04以上的最好,我用的是11.04的盘,因为11.10的盘不知道哪去了),然后改系统从光盘启动,进...

2012-03-03 15:05:41 85

原创 Java容器类分析之List、ArrayList、Vector

 Java容器类分析之List、ArrayList、VectorList是接口,声明了各个方法,不多说。且看ArrayList类。ArrayList类的成员变量有Object[]elementData,intsize;其中elementData数组用来存储加入到ArrayList的对象,size为列表中实际的对象数目。ArrayList类不是线程安全的。Vector与A...

2012-02-21 17:03:50 83

原创 算法导论系列——第二章习题乱解【原创】

算法导论第二章习题答案2.1插入排序2.1-1-2.1-2略过。 2.1-3查找问题: 输入:一列数A={a1,a2, ...an}和值v。 输出:下标i,使得v=A[i],若v不在A中,则输出NIL。写出针对该线性查找问题的伪代码,利用循环不变式证明算法的正确性。      解答:伪代码如上。循环不变式A[1.....

2011-12-28 15:43:43 239

原创 Cassandra中布隆过滤器实现详解【原创】

 Cassandra中BloomFIlter实现详解零、BloomFilter原理概述 http://hi.baidu.com/waxiga/blog/item/33ef2ff49b138530bd3109ad.html http://pages.cs.wisc.edu/~cao/papers/summary-cache/node8.html(cassandra中用到了其中的结论,...

2011-12-28 15:01:28 144

原创 Cassandra中失效检测原理详解

 Cassandra中失效检测原理一、传统失效检测及其不足传统失效检测方法 在分布式系统中经常使用心跳(Heartbeat)来检测Server的健康状况,但从理论上来说,心跳无法真正检测对方是否crash,主要困难在于无法真正区别对方是宕机还是“慢”。传统的检测方法是设定一个超时时间T,只要在T之内没有接收到对方的心跳包便认为对方宕机,方法简单粗暴,但使用广泛。传统错误检测...

2011-12-28 14:58:39 243

原创 Cassandra启动过程详解【原创】

Cassandra启动过程详解这里的分析从CassandraDaemon.java文件开始。一、配置文件storage-config.xml的读取和log4j的配置文件log4j.property的设置。配置文件的读取和解析都是在 org.apache.cassandra.config.DatabaseDescriptor 类中完成的,这个类的作用非常简单,就是读取配置文件中各个配置项所定义的值,...

2011-12-28 14:46:22 476

原创 Cassandra数据模型【原创】

Cassandra数据模型几个概念Cluster:集群,一个逻辑上的cassandra实例包含的节点。一个集群可以包含多个keyspace。Keyspace:Column Family的名字空间,通常是一个应用一个keyspace。Column Family:包含多个column,每个column包括name,value, timestamp。Column Family通过...

2011-12-28 14:41:55 124

原创 约瑟夫环非递归算法和递归算法分析与实现(ZZ)

【Joseph问题描述】n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。【求解思路】[size=medium][b]1.非递归算法[/b][/size]我们知道第一个人(编号一定是m%n-1) 出列之后,剩下的n-1个人组成了一个新的约瑟夫环(以编号为k=m%n的人开始):k k+1 k+2 ... n-2, ...

2011-11-17 15:53:00 207

原创 Cassandra中BloomFIlter实现详解

[size=x-large]Cassandra中BloomFIlter实现详解[/size][size=large]零、BloomFilter原理概述[/size] [url]http://hi.baidu.com/waxiga/blog/item/33ef2ff49b138530bd3109ad.html[/url] [url]http://pages.cs.wisc.edu...

2011-11-16 19:35:16 862

原创 一致性哈希——写的很好的一篇文章 【ZZ】

原文地址 http://blog.csdn.net/sparkliang/article/details/5279393一致性 hash 算法( consistent hashing )张亮consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;...

2011-11-07 15:44:26 66

原创 grub rescue修复

前段时间修复移动硬盘分区表的时候,把本本的分区也重新弄了下,导致ubuntu的grub找不到linux分区(由于root分区uuid改变造成的不能正常启动),切换到Linux系统时,提示错误“error partition”,进入grub rescue模式。在Google上搜了一下,终于解决了,方法如下:1. 首先使用set命令,查看当前配置信息;2. 然后再使用ls命令,...

2011-10-15 18:22:15 95

原创 给Java Applet设置权限的问题(转)

今天编了个用Applet中的按钮来控制文件的写入,但在运行的时候总是提示好多的异常,一大堆的英文看也没看,也没去看究竟 是什么原因造成的,还以为是程序在哪里出了问题,所以……后来实在找不出问题,就给在别的机器上,结果运行完全正常,无语……后来才仔细看控制台提示的异常信息,仿佛是跟安全有关的,再仔细一看是说Applet权限写文件,顿悟……以下是在网上搜到的给Applet设置权限的问题,问...

2011-09-27 14:35:09 390

原创 mysql编码设置

-查看数据库的字符集 show variables like 'character\_set\_%'; show variables like 'collation_%'; --设置数据库字符编码 set names 'GBK' alter database payment character set GBK; create database mydb character ...

2011-07-11 18:28:21 53

原创 ubuntu ssh命令错误(转)

SSH登陆错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED![root@localhost ~]# ssh 192.168.10.88@ WARNING:REMOTE HOST IDENTIFICATION HASCHANGED! @ IT IS POSSIBLE THAT SOMEONE IS DOING SOM...

2011-06-10 17:00:32 186

原创 java堆、栈和常量池

1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.  2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)  3. 堆:存放所有new出来的对象。  4. 静态域:存放静态成员(static定义的)  5. 常量池:存放字符串常量和基本类型常量...

2011-03-30 23:23:12 39

原创 windows xp禁止ping

第一步:添加独立管理单元  开始-运行,输入:mmc,启动打开“控制台”窗口。再点选“控制台”菜单下的“添加/删除管理单元”,单击“添加”按钮,在弹出的窗口中选择“IP安全策略管理”项,单击“添加”按钮。在打开窗口中选择管理对象为“本地计算机”,单击“完成”按钮,同时关闭“添加/删除管理单元”窗口,返回主控台。第二步:创建IP安全策略  右击刚刚添加的“IP安全策略,在本地机器...

2011-03-28 21:19:57 265

原创 重装Win7后恢复Ubuntu启动项(针对ubuntu11之前版本)

最近装了Windows7,不想却让之前装的 ubuntu没有启动项了,Windows7没有boot.ini文件编辑的方法,由于当时 ubuntu是用w ubi在Windows下安装的,找来找去,下面这个方法最适用,记录下吧:D:\>copy d:\ ubuntu\winboot\w ildr c:\ (wubi安装的为wubildr)D:\>copy d:\ ubuntu\winbo...

2011-01-19 18:50:56 93

原创 eclipse后台进程一直提示"computing additional info"的解决办法

eclipse后台进程一直提示"computing additional info"的解决办法解决办法: 1. 找到你的JDK安装目录下的src.zip文件; 2. 打开eclipse: Window菜单->Preference->Java->Installed JREs; 3. 在列表中选择你eclipse正在使用的JRE,然后Edit; 4. 选择rt.ja...

2010-12-11 19:10:05 92

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除