北大方正的面试题(java),拿给兄弟们看看
1)利用递规算法编写以下程序,计算用不同的正整数加出10000有多少种方法:
10000
=1+9999
=2+9998
=1+2+9997
(注:次序无关,即1+9999与9999+1认为是一种方法
2)利用java中的接口来实现设计模式中的策略模式,需要编写的程序条件如下:
public interface Relation{
boolean Releation(int a,int b);
}
利用上述接口,编写一个函数int GetmaxChainLen(int [] intArray,Reletion reletion);
intArray为一个整数数组,该数组中,如果相邻两个整数a,b使得过且过Relation(a,b)为true,则认为a,b为一段链;
计算该数组中(根据Relation关系)最大的链的长度;如果没有这样的链,返回0;
要求:根据上述条件,代码中要实现GetMaxChaiLen的函数,,还要给出Relation的实现
3)编写一个小程序:
输入:一个文件名,一个特征字符串
输出:报告这个特征字符串在文件中出现的次数
要求:解决问题时要考虑到输入的文件类型可能不是文本类型(text file),而是普通的二进制文件(binary file)输入,
例如:特征字符串为0x1624表示两个连续的二进制位22/36)
分析一下解决问题所使用的算法效率