一场考试分为三种考试类型:
1.单选题(不可切屏)
2.多选题(多选不给,少选给,不可切屏)
3.三道编程题(可以无限次切换出来,用本地ide编辑写代码再黏贴到牛客)
一.单选题
考察点基本就是计算机四大神书:数据结构和算法,计算机网络,操作系统和计算机组成原理。
下面是一些记得住的题目:
(1)平衡二叉树,B+树和红黑树的区别,B+是多路查找树,叶子节点包含所有的值等
(2)堆栈型算法的替代算法:LRU和LFU
(3)jvm的线程共享的有堆和方法区(私有的有本地方法栈,程序计数器和一个什么栈)
。。。。。还有七个不记得了(总共30分)
二.多选题
记得住的题目:
(1)就是B+树和红黑树的区别
。。。。还有四个不记得了(15分)
三.编程题(55分)
(1)输入n,k,把n分成k个不同的数,有多少种分法(刚开始准备用递归,dp[n]=dp[n-1]+....+dp[n-k+1],没写出来,最后放弃了,心酸)例子数据是输入7,3输出4
(2)解析xml,判断xml中是否包含所需字符串的,不包含就输出""包含的话就输出包含的值
包含的情况:
输入:"<people><name>shopee</people></name>","people.name"
输出:shopee
不包含的情况:
输入:"<people><name>shopee</people></name>","people.age"
输出:""
心酸,最后面一个特殊符号没排查出来,我的解题思路:首先切割属性(第二个字符串),split("."),然后一个个去除属性名,replaceAll属性。然后在split的时候没加转义字符\\,正确的split是split("\\.")
(3)找到一个整数数组的下表,是的数组左边的和等于右边的和
例子输入:[1,2,3,4,6] 输出:3
本题用的先求所有数字的和,如果是奇数就找奇数的元素,如果是偶数那就找偶数的元素,最后A了