• 那些年我们经历的BT面试题


      初入职场面试的我到处碰壁,以下是我个人对几道面试题的小总结:

      1.一列数字的规则如下:1,1,2,3,5,8,13,21, 34........ 求第30位数字是多少,用递规和非递归两种方法算法实现。

        (1)递归: 

     1  @Test
     2 public void test(){
     3     System.out.println(foo(30));
     4 }
     5 private static int foo(int i) {
     6     if(i<0){
     7         return 0;
     8     }else if(i>0&&i<=2){
     9         return 1;
    10     }else{
    11         return foo(i-1)+foo(i-2);
    12     }
    13 }
    递归算法

        (2)非递归:

     1  private static long Fibonacci(int n)
     2 {
     3      long result = 1; //当n<=2时都返回1
     4        if (n > 2)          //当n>2时,利用循环计算
     5        {
     6              long first = 1;
     7              long second = 1;              
     8              int i = 0;
     9              n = n - 2;      //每次当然要减少两次循环
    10         while (i < n)
    11         {
    12              first = second;
    13              second = result;
    14              result = first + second;
    15              i++;
    16           }
    17          }
    18         return result;
    19 }
    非递归(循环)

      2.求1-100之间的和。

    1 int sum = 0;
    2 for(int i =1; i <=100; i ++)
    3 {
    4      sum += i;
    5 }
    6 System.out.println("1-100之间的和:" + sum);
    1-100的和

        使用递归实现:

    1 private static int add(int param) {
    2         if (param < 100 && param > 0) {
    3             return param + add(param + 1);
    4         } else {
    5             return param;
    6         }
    7     }
    递归算法


      3.冒泡排序:1,4,2,3,5,8,6,9

     1 public void bubbleSort(){  
     2     int a[]={1,4,2,3,5,8,6,9};  
     3     int temp=0;  
     4     for(int i=0;i<a.length;i++){  
     5        for(int j=i+1;j<a.length;j++){  
     6             if(a[i]>a[j]){  
     7            temp=a[i];  
     8            a[i]=a[j];  
     9            a[j]=temp;  
    10        } 
    11     }  
    12     for(int i=0;i<a.length;i++)  {
    13         System.out.println(a[i]);     
    14    }
    15 }
    冒泡排序示例

      逻辑思维题

      1.有一个7克的砝码和一个2克的砝码,有一个天平.把140克的盐称三次分成50克和90克.你该如何分?

        (1).先用天平将盐分成两份,每份70克    

        (2).再取其中一份用天平分成两份,每份35克然后其中一个里面放7克的砝码,另一个放2克的砝码,然后从7克砝码的盘里面往外拿盐,拿出5克两个就平衡了.    

        (3).最后两个盘里1个30克,1个35克,将5克加入35克里面,然后将这40克再用天平平均分成两份,每次份20克,将20克加入第一步剩下的那一份70克里面组成90克,剩下的为50克

    这是我几场面试总结下来的,希望能对各位有所帮助,也希望各位大神多多指点!

    后续还有我遇见的或者面试考到的经典题型我会继续更新。

      你的建议就是我的动力

  • 相关阅读:
    比较重量(网易笔试题)
    抽象工厂模式
    简单工厂模式
    R语言dai xie
    Hadoop综合大作业
    hive基本操作与应用
    用mapreduce 处理气象数据集
    熟悉常用的HBase操作,编写MapReduce作业
    爬虫大作业
    第三章 熟悉常用的HDFS操作
  • 原文地址:https://www.cnblogs.com/Tony-cheen/p/6511560.html
Copyright © 2020-2023  润新知