zoukankan      html  css  js  c++  java
  • 技术面试笔试题

    1、数字找规律:1,11,21,1211,111221下一个数字是什么?

    规律如下:

    11--- 表示前一个数“1”是 1 个 1; 
    21--- 表示前一个数“11”是 由 2 个 1 组成; 
    1211--- 表示前一个数“21”是 由 1 个 2、1 个 1 组成; 
    111221--- 即 11 12 21 ,表示前一个数“1211”是依次由 1 个 1,1 个 2,2 个 1组成;
    所以,下一个数应填312211---即 31 22 11,表示前一个数“111221”是依次由 3 个 1,2 个 2,1 个 1 组成; 
    同理,再下一个数根据312211填 13112221---即13 11 22 21,表示前一个数“312211”是依次由 1 个 3,1 个 1,2 个 2,2 个 1 组成.
    .依次类推

    2、ABCDE五个人排成一排照相,一共有多少种排法?如果AB不能排在一起,一共有多少种排法?

    插空法。CDE三个人先站,有p(3,3)=6种站法,AB只能在CDE之间和两头四个地方站,有p(4,2)=12种站法。共有72种。

    3、5个苹果要均匀的分给6个人,每个苹果切分不能超过3块,怎么分?

    把苹果先分给5个小朋友,然后每个苹果切1/6,切下来的给第六个小朋友,这样每个人都有6分之5个苹果了。

    4、用熟悉的语言写一个冒泡排序算法,并说明时间复杂度。

    冒泡排序的算法时间复杂度上O(n^2 )

    5、用熟悉的语言写下链表的插入和删除节点的操作。

    10、下面两个函数的返回值是一样的吗?为什么?

    function foo1(){

      return {

      bar:"hello"

      };

    }

    console.log(foo1())

    function foo2(){

      return

      {

      bar:"hello"

      }

    }

    console.log(foo2())

     在编程语言中,基本都是使用分号(;)将语句分隔开,这可以增加代码的可读性和整洁性。而在 JS 中,如若语句各占独立一行,通常可以省略语句间的分号(;),JS 解析器会根据能否正常编译来决定是否自动填充分号.

    function fun(n,o) {

      console.log(o);

      return {

        fun:function(m) {

          return fun(m,n);

         }

      };

    }

    var a = fun(0);    a.fun(1);    a.fun(2);    a.fun(3);

    var b = fun(0).fun(1).fun(2).fun(3);

    var c = fun(0).fun(1);    c.fun(2);    c.fun(3);

    首先来看第一行

    • var a = fun(0);
      等同于fun(0, undefined),因为未传递第二参数,所以打印undefined
    • a.fun(1);
      因为闭包的存在,所以n依然在内存中存在,所以此式等同于fun(0, undefined).fun(1)
      所以a.fun(1)返回的就是fun(m, n)
      m是传进去的参数1,n是内存中依然存在的0,所以实际返回的是fun(1, 0);因此打印的值为0,;
      后面两步就同理了;
      注意:这一步弄明白,这道题基本就明白了。所以一定要注意。第一行的后面两步就换了一下参数。第二行就相当于一直迭代,第三行就是稍加变化,重点在这一步。
    • a.fun(2);
      返回fun(2, 0),依然打印0
    • a.fun(3);
      返回fun(3, 0),依然打印0
    • 所以第二行打印值为undefined,0,0,0

    第二行

    • var b = fun(0)
      从这来看,和第一行暂时一样,打印undefined
    • .fun(1)
      此时和第一行第二步也是一样,返回fun(1, 0), 打印0
    • .fun(2)
      这一步其实已经变为fun(1, 0).fun(2),弄明白了上面,你一定知道这一步应该返回的是fun(2, 1);因为此时在内存中的n是1;所以打印值为1;
    • .fun(3)
      和上一步道理相同,n变为2,即fun(3, 2);打印2
    • 所以第二行打印值为undefined,0,1,2

    第三行就是一二行的结合,如果弄懂了上面两行,第三行不过是一个验证的过程。也就不在多说。
    输出为 undefined,0,1,1

    谈谈垃圾回收机制方式以及内存管理

  • 相关阅读:
    pickle模块使用
    Graphviz安装教程
    Redis常用命令
    MongoDB和Redis的区别
    UVA-1572
    poj2352
    poj1195
    Codeforces Round #430 (Div. 2)
    Codeforces Round #431 (Div. 2) B. Tell Your World
    poj3278 【BFS】
  • 原文地址:https://www.cnblogs.com/zhoudawei/p/10428849.html
Copyright © 2011-2022 走看看