首页 > 编程知识 正文

经典算法面试题及答案,经典算法面试题

时间:2023-05-05 04:14:23 阅读:169888 作者:4958

来源: k6k4

答: AI/算法的一般问题

1、各种排序算法的比较与实现

2、介绍一下查一下吧?

3、介绍跳转表SkipList的原理?

4、Raft算法?

5、介绍LRU算法吗?

6、介绍红黑树及其应用场景?

7、n个数字(0,1,…,n-1 )形成一个圈,从数字0开始,每次从这个圈中删除第m个数字(第一个是当前数字本身,第二个是当前数字的下一个数字)。 删除一个数字后,继续从被删除数字的下一个数字开始删除第m个数字。 求出这个圆中剩下的最后一个数字。

8、输入按升序排序的数组和数字,在数组中查找两个数字,使其和正好成为输入的数字。 时间的复杂性是o(n )吗?

9、1 2 3 . n求乘除法、for、while、if、else、switch、case等关键词和条件判断语句(a? B:C )。

10、输入n个整数,输出其中最小的k个。 例如,如果输入1、2、3、4、5、6、7、8这8个数字,则最小的4个数字为1、2、3、4。

11、输入整形数组。 数组既有正数也有负数。 中一个或多个连续的整数构成子数组,每个子数组有和。 求出所有子数组之和的最大值。 例如,输入的数组为1,- 2,3,10,- 4,7,2,-5,最大的子数组为3,10,- 4,7,2,因此输出为该子数组的和18。

12、在一个字符串中找到只出现一次的第一个字符。 输入abaccdeff的话,会输出b吗?

13、输入英语句子,翻转句子中单词的顺序。 但是,单词中的字符顺序不会改变。 文中的单词用空格隔开。 为了简单起见,标点符号和普通的字母一样处理。 例如,键入" I am a student."将输出" student. a am I "。

14、(中兴面试)输入两个整数n和m,要求在数列1、2、 n中自由取几个数,使和等于m,并列出其中所有可能的组合。

15、输入Fibonacci数列,n,用最快的方法求出该数列的n项?

16、给你10分钟,根据上面的列得出10个数字,然后填写下面的列对应的10个数字。 下面一列中的每个数字是以前上面一列中的10个数字出现在下面一列中的次数。 前十位是【0、1、2、3、4、5、6、7、8、9】举个例子,数值:1、2、3、4、5、6、7、8、9为:6、2、1、0、0

17、输入整数数组,判断该数组是否为二元搜索树后行扫描的结果。 如果返回true,否则返回false。 例如,输入5、7、6、9、11、10和8。 返回true,因为此整数列是8/ 6 10// 5 7 9 11树之后的遍历结果。 如果输入7、4、6、5,则后续遍历的任何树都会生成此序列,并返回false。

18、输入一个二元树,从上到下逐层打印树的各个节点,在同一层中从左到右依次打印吗?

19、输入二元搜索树,将该树转换为镜像。 也就是说,在转换的二元搜索树中,左子树的节点都比右子树的节点大。 通过递归和循环两种方法完成树的镜像变换。 例如8/ 6 10// 5 7 9 11输出:8/ 10 6// 11 9 7 5?

20、把二叉树当成一个图,把父子节点之间的连接看成是双向的,我们首先把“距离”定义为两个节点之间的边的数量。 编写求解二叉树中最远的两个节点之间距离的程序。

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /

21、输入整数和二元树。 从树根节点向下访问到火热的万宝路的所有节点形成一条路径。 打印与输入的整数相等的所有路径。 例如,如果输入整数22和以下二元树10/ 5 12/ 4 7,则会打印10、12和10、5、7这两个路径。

22、输入二元搜索树,将该二元搜索树变换为排序后的双向链表。 不能创建新节点。 请只调整指针的方向。 10/ 6 14// 4 8 12 16转换为双向链表4=6=8=10=12=14=16。 首先,二元搜索树节点的数据结构定义如下。 struct BSTreeNode { int m_nValue; //valueofnodebstreenode * m _ p left; //leftchildofnodebstreenode * m _ p right; //right child of node };

23、介绍一下均衡的二叉树吧?

24、什么是双股搜索树? 性能怎么样? 在什么情况下达到最差的性能?

25、判断单链表中是否存在环,如果存在环,则求出环的入口节点。

26、输入单向链表,并输出该链表倒数第k个节点。 链表中倒数第0个节点是链表中的最后一个指针。

27、如何判断两个单链表是否交叉? 如果要相交,请找到第一个相交的节点。

28、定义堆栈的数据结构,要求添加能够得到堆栈最小元素的min函数。 要求函数min、push和pop的时间复杂度都为o(1)。

29 .定义栈的数据结构,要求添加可以得到栈的最小元素的min函数。 要求函数min、push和pop的时间复杂度都为o(1)。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。