funplus(趣加)游戏服务端笔试记录

funplus(趣加)游戏服务端笔试记录
最新回答
神啊,赐个妞吧

2026-10-23 08:38:53

趣加(FunPlus)游戏服务端笔试主要涵盖计算机网络、操作系统、C/C++、SQL、Linux命令、分布式系统相关知识,以及两道编程题(可使用Java、C++或Go语言作答)。具体内容如下:

一、知识考查点
  • 计算机网络与操作系统

    TCP和UDP相关问题:TCP和UDP是传输层核心协议,TCP提供可靠、面向连接的传输,通过三次握手建立连接、四次挥手释放连接,具备流量控制和拥塞控制机制;UDP则是无连接、不可靠的传输协议,适用于对实时性要求高但对可靠性要求不高的场景,如视频直播、在线游戏等。

    稳定的排序算法:基数排序、冒泡排序、直接插入排序均属于稳定排序算法。稳定排序指相等元素的相对顺序在排序前后保持不变。

  • 数据库(SQL)

    索引设计:为满足特定查询需求设计高效索引,组合索引是常见优化手段,可显著提高查询效率,尤其适用于多列条件查询。

    SQL查询编写:需掌握基础SQL语法,如编写查询每个学号平均成绩的语句,核心是使用GROUP BY和AVG函数。示例代码如下:

SELECT student_id, AVG(score) AS average_scoreFROM student_scoresGROUP BY student_id;
  • Linux命令

    日志统计:需熟悉常用命令组合,如统计log.txt文件中所有warning行,可通过grep -i "warning" log.txt | wc -l实现。其中grep -i表示忽略大小写匹配,wc -l用于统计行数。

  • C/C++知识

    extern "C"声明:在C++中调用C语言函数时,需使用extern "C"声明,以告知C++编译器按C语言规则编译函数,避免名称修饰导致的链接错误。

  • 分布式系统

    一致性模型:需理解分布式系统中强一致性、弱一致性和最终一致性的概念及关系。最终一致性是弱一致性的一种特殊形式,指系统在经历一段时间后最终达到数据一致状态,适用于对实时性要求不高的场景,如分布式缓存、分布式存储等。

二、编程题
  • 扑克牌计算目标值

    题目要求:给定一个包含1~13的数组(表示扑克牌)和目标值points,判断是否可通过数组内数字的加减乘除运算得到目标值,返回true或false。

    解题思路:可通过递归或动态规划实现。递归方法需遍历所有可能的运算组合,动态规划则需构建状态转移表记录中间结果。

  • 判断扑克牌是否为顺子

    题目要求:给定一个代表5张扑克牌的数组,其中0表示大小王(可替代任意牌),判断是否为顺子(连续5个数字),返回true或false。

    解题思路:

    统计数组中0的个数(即大小王数量)。

    对非0数字排序,检查是否存在重复数字(若有则直接返回false)。

    计算非0数字中最大值与最小值的差,若差值小于5,则可通过大小王填补空缺形成顺子;否则返回false。示例代码如下(Go语言):

func isStraight(nums []int) bool { sort.Ints(nums) zeroCount := 0 for _, num := range nums { if num == 0 { zeroCount++ } } for i := zeroCount; i < len(nums)-1; i++ { if nums[i] == nums[i+1] { return false } } return nums[len(nums)-1]-nums[zeroCount] < 5}