Java 面试代码题型
2013-06-07 21:40
260 查看
1. 实现斐波那契(Fibonacci)f(N)=F(N-1)+F(N-2),其中f(1)=f(2)=1
public static int method(int n){
if(n<=2){
return 1;
}else
return method(n-1)+method(n-2);
}
2. 查找字符串中出现的第一个不重复的字母
//方法一
public static Character firstNo(String str){
Map <Character,Integer> map = new HashMap<Character,Integer>();
for(int i=0; i<str.length();i++){
if(map.containsKey(str.charAt(i))){
map.put(str.charAt(i), 2);
}else{
map.put(str.charAt(i), 1);
}
}
for(int i=0; i<str.length();i++){
if(map.get(str.charAt(i))==1 ){
return str.charAt(i);
}
}
return null;
}
//方法二
public static String findStr(String testStr){
String rstr= "no";
for(int i=0;i<testStr.length();i++){
String charindex = String.valueOf(testStr.charAt(i));
//如果这个字符第一次出现的位置和最后出现的位置相等,就说明字符串中它只出现了一次
if(testStr.indexOf(charindex) == testStr.lastIndexOf(charindex)){
rstr = charindex;
break;
}
}
return rstr;
}
3. 实现n的阶乘相加(如:1!+2!+3!+……+10!)
//方法一:非递归实现
public static long n1(int n){
long temp=1;
long sum=0;
for(int i=1; i<=n; i++){
temp*=i;
sum+=temp;
}
return sum;
}
//方法二:递归实现
/**
* 阶乘和
*
* @param 目标数字
* @return 目标数字0!+1!+2!+...+n!阶乘和
*/
public static long factorialAdd(int number) {
long sum = 0;
//注意从1开始相加
for (long i = 1; i <= number; i++) {
sum += facotrial(i);
}
return sum;
}
/**
* 求数字n的阶乘
*
* @param n
* @return
*/
public static long facotrial(long n) {
if (n == 0 || n == 1) {
return 1;
}
return n * facotrial(n - 1);
}
public static int method(int n){
if(n<=2){
return 1;
}else
return method(n-1)+method(n-2);
}
2. 查找字符串中出现的第一个不重复的字母
//方法一
public static Character firstNo(String str){
Map <Character,Integer> map = new HashMap<Character,Integer>();
for(int i=0; i<str.length();i++){
if(map.containsKey(str.charAt(i))){
map.put(str.charAt(i), 2);
}else{
map.put(str.charAt(i), 1);
}
}
for(int i=0; i<str.length();i++){
if(map.get(str.charAt(i))==1 ){
return str.charAt(i);
}
}
return null;
}
//方法二
public static String findStr(String testStr){
String rstr= "no";
for(int i=0;i<testStr.length();i++){
String charindex = String.valueOf(testStr.charAt(i));
//如果这个字符第一次出现的位置和最后出现的位置相等,就说明字符串中它只出现了一次
if(testStr.indexOf(charindex) == testStr.lastIndexOf(charindex)){
rstr = charindex;
break;
}
}
return rstr;
}
3. 实现n的阶乘相加(如:1!+2!+3!+……+10!)
//方法一:非递归实现
public static long n1(int n){
long temp=1;
long sum=0;
for(int i=1; i<=n; i++){
temp*=i;
sum+=temp;
}
return sum;
}
//方法二:递归实现
/**
* 阶乘和
*
* @param 目标数字
* @return 目标数字0!+1!+2!+...+n!阶乘和
*/
public static long factorialAdd(int number) {
long sum = 0;
//注意从1开始相加
for (long i = 1; i <= number; i++) {
sum += facotrial(i);
}
return sum;
}
/**
* 求数字n的阶乘
*
* @param n
* @return
*/
public static long facotrial(long n) {
if (n == 0 || n == 1) {
return 1;
}
return n * facotrial(n - 1);
}
相关文章推荐
- think in java interview-高级开发人员面试宝典代码示例
- think in java interview-高级开发人员面试宝典代码示例
- 校招面试之Java代码查错
- java面试一些写代码的题目
- java面试--代码 编程+输出内容
- 华为面试题目大整数乘法java代码
- [JAVA面试算法] 用代码体现“水仙花数”
- 经典面试智力题(过桥问题)及完整java代码
- [置顶] think in java interview-高级开发人员面试宝典代码示例
- JAVA面试代码与编程题
- Java web开发,在一个jsp里放太多java代码的后果,摘自 java web轻量级开发面试教程
- Java web开发,在一个jsp里放太多java代码的后果,摘自 java web轻量级开发面试教程
- Java学习--Static代码块面试小细节
- Java面试系列(一):代码的执行顺序
- Java面试:代码题19道
- 面试中常见的java问题的代码
- 关于截取字符串的java笔试(面试)题简化代码实现
- JAVA面试:经典代码查错题
- Java面试:代码题19道
- 面试问题 如何编写Java 代码使得Java虚拟机崩溃