• 毕业十年后,我忍不住出了一份程序员的高考试卷


    
     

    640?wx_fmt=jpeg

    一、选择题(共计 50 分)

    1、在下列四种排序算法,只有( )是一种不稳定排序

    A、冒泡排序

    B、选择排序
    C、插入排序

    D、归并排序


    2、一个数组,含有大量重复元素,使用( )进行排序是一种合理的抉择

    A、快速排序

    B、双路快速排序

    C、三路快速排序

    D、希尔排序


    3、杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉 1261 年所著的( )一书中出现,LeetCode 上第 ( )和( )就是与杨辉三角有关的题目。

    A、《详解八章算法》、118 、119

    B、《详解九章算法》、118 、119

    C、《详解八章算法》、139 、140

    D、《详解九章算法》、139 、140


    4、小吴想执行某项破坏性的操作,比如快速删除系统元素,使用( )方式可以帮助我更好的完成这个任务

    A、二叉树的前序遍历

    B、二叉树的中序遍历

    C、二叉树的后序遍历

    D、二叉树的层序遍历


    5、在《算法导论》第二版第 7 章(快速排序)的思考题(第 95 页)中提及到一种低效的递归排序算法, Howard、Fine 等教授将这个算法称为 ( )

    A、垃圾排序

    B、完美排序

    C、变种快速排序

    D、HF 排序


    6、(多选)如果程序员小吴将下面这张图里面的文章写完,将会 ( )


    640?wx_fmt=png


    A、收到律师函

    B、学会打篮球

    C、学会 RAP

    D、文章阅读十万加


    7、下列哪个短语缩写不是程序员常见某些算法的简称()

    A、KMP

    B、MMP

    C、DP

    D、A*


    8、有一种玻璃杯质量确定但未知,需要检测。现在有一栋 100 层的大楼,该种玻璃杯从某一层楼扔下,刚好会碎。现给你两个杯子,问怎样检测出这个杯子的质量,即找到在哪一层楼刚好会碎? 现在有一种解法是从数学方程的角度出发。假设最少尝试次数为 x ,那么,第一个杯子必须要从第 x 层扔下,因为:如果碎了,前面还有 x - 1 层楼可以尝试,如果没碎,后面还有 x-1 次机会。

      那么经过 x 次的尝试可以确定最高的楼层为 x + (x - 1) + (x - 2) + … + 1 = x(x+1) / 2 。

      请问,x 是多少?

    A、2

    B、10

    C、14

    D、25


    9、假设你在参加一个春节抽奖游戏,主持人在三个红包里面分别放了 1 块钱、1 块钱和 1000 块钱。你选中哪一个,你就可以领到对应的钱。当你选定一个红包之后,主持人独自翻开剩下两个红包,然后将有一块钱的红包给你看。此时,给你一次机会选另外一个红包。请问:应不应该换?

    A、换

    B、不换

    C、可以换,但没必要

    D、都可以


    10、LeetCode 第 9 号问题是回文数求解,它有很多种解法,下面动图的解法属于( )


    640?wx_fmt=gif


    A、语文解法

    B、数学解法

    C、英语解法

    D、体育解法


    二、填空题(共计 20 分)

    11、第一篇二分搜索论文是 1946 年发表,然而第一个没有 bug 的二分查找法却是在 ( ) 年才出现,中间用了 ( ) 年的时间。

    12、我们常说有五大算法,它们分别是 —— 分治算法、动态规划、( )、( )、分支限定。

    13、印度数学奇才拉马努金(Srinivasa Ramanujan)是二十世纪最传奇的数学家之一,他独立发现了近 3900 个数学公式和命题,虽然他几乎没受过正规的高等数学教育,却能凭直觉写出不平凡的定理和公式,且往往被证明是对的,他留给世人的笔记引发了后来的大量研究。

     下面这张图就是他的一项发现。

     

    640?wx_fmt=jpeg


    请问,当 k = 0 时,π 的值为( )

    三、编程题(共计 30 分)

    喜羊羊和灰太狼用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。喜羊羊和灰太狼轮流进行,喜羊羊先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设喜羊羊和灰太狼都发挥出最佳水平,当喜羊羊赢得比赛时返回 true ,当灰太狼赢得比赛时返回 false 。

    现在需要你设计一个算法,来分析它们的输赢情况。

    要求:请使用尽可能少的代码将下列代码补充完整,不得超过两行代码。

    //@author:程序员小吴class Solution {    public boolean stoneGame(int[] piles) {        //请在这里将代码补充完整    }}
    class Solution {
        public boolean stoneGame(int[] piles) {
            //请在这里将代码补充完整
        }
    }

    End

    如果你对以上问题有疑惑,可以先行查看阅读下面文章。


    十大经典排序算法动画与解析,看我就够了

    【图解数据结构】 一组动画彻底理解二叉树遍历

    你知道什么是漂亮排序法吗?哦,知道,不就是臭皮匠排序法嘛!

    一道看完答案你会觉得很沙雕的「动态规划算法题」

    面试官,我会写二分查找法!对,没有 bug 的那种!

    动画:回文数的三种解法 | 法解种三的数文回:画动

    五分钟了解一下什么是「贪心算法 」

    一道腾讯面试题:厉害了我的杯

    【春节特辑】三门问题


    这份试卷你得了多少分?


    答案会在后续公布在小吴的免费知识星球里面(小吴的小密圈),欢迎前往查看。


    640?wx_fmt=jpeg

  • 相关阅读:
    博客
    NFS服务配置
    LAMP环境搭建与配置
    Linux系统管理技巧(下)
    Linux系统管理技巧(上)
    LVM
    安装RPM包或源码包
    Linux第四章 文件和目录管理
    MySQL主从配置 : 配置主和从(一) 配置主
    MySQL主从配置:主从介绍
  • 原文地址:https://www.cnblogs.com/csnd/p/16675352.html
Copyright © 2020-2023  润新知