2019独角兽企业重金招聘Python工程师标准>>>
import java.util.*;
public class AlgorithmHandler
{
// 几个面试题;
public static void main(String[] argus)
{
// 阳光保险快速排序:先找到某个元素的正确位置,然后前后实现二分法,两边分别如此反复;
int[] nArr = {100,14,36,3,8,23,10,5,-8,-1};
//quickSort(nArr,0,nArr.length-1);
//System.out.println(Arrays.toString(nArr));
// 人人贷的面试两个算法;
// 1、三位数倒数输出;
// swapInt(12345);
// 2、n=0,0;n=1,1;f(n)=f(n-1)+f(n-2);
System.out.println(getFn(8));
}
public static void quickSort(int[] nArr,int i,int j)
{
if(i>=j) return;
// 快速排序:先找到某个元素的正确位置,然后前后实现二分法,两边分别如此反复;
int nVal = nArr[i]; // 随便指定一个元素,找到她的位置;
int low = i,high = j;
while(low<high)
{
while(low<high && nArr[high]>nVal)
{
high--;
}
nArr[low] = nArr[high];
while(low < high && nArr[low]<nVal)
{
low++;
}
nArr[high] = nArr[low];
}
nArr[low] = nVal;
quickSort(nArr,i,low-1);
quickSort(nArr,low+1,j);
}
// 三位数倒数输出;
public static void swapInt(int i)
{
/* while(i>0)
{
System.out.println(i%10);
i=i/10;
}
*/
int revNum = 0;
// 关键也就是这三行的代码
while(i != 0){
revNum = i % 10 + revNum * 10;
i /= 10;
}
System.out.println(revNum);
}
// // 2、n=0,0;n=1,1;f(n)=f(n-1)+f(n-2);这个好像是斐波拉契数列;
// 关键是要理解题目,就是返回求f(n);
public static int getFn(int n)
{
int fn = 0;
if(n==0||n==1)
fn = n;
else
{
fn = getFn(n-1) + getFn(n-2);
}
return fn;
}
}