4399笔试游戏开发复盘A

本文是对4399笔试的游戏开发题目进行的复盘,包括Excel行列转换、递增变递减的数列调整以及子集和问题的解题思路。在第一题中,通过字符串操作解决行列转换;第二题通过动态规划解决递增变递减的数列问题;第三题涉及子集和相等的动态规划解法。这些题目暴露了作者在字符串操作和动态规划方面的不足,提醒读者要重视基础和面试题的练习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天4399面试,也是小白第一次面试,面试前在牛客看了一些面经,发现竟然是差不多的题型,但是还是没有做出来,或者是思路什么的出现了问题,下面先对编程题进行复盘。

第一题是excel表格的判断行列的问题,给两个数字分别是行与列,然后输出这个数字对应的表格所在的编号之类的,eg:13 28 -> AB13 若行列小于1输出error。

首先,转为数字的是列号(应该只要求列号?),所以在做的时候想到用y减26,记录循环了多少次的字母表,然后进行加上“A”加入字符串中。然后再加入行号就可以是答案。

#include<iostream>
#include<string>
using namespace std;
int main(){
    int x,y;
    cin>>x>>y;
    string ans; 
    int p = 0;//定义p来记录次数
    while(y > 26){
        p++;
        y -= 26; 
    }
    while(p>0){//循环了多少次的A
        ans += 'A';
        p--;
    }
    ans += y + 'A' - 1;
    ans += to_string(x);
    cout<<ans;
    return 0; 
}

这道题目还是很简单的就是忘记了字符串string的一些作用,刷了200题都不知道刷了什么,

to_string()是用来将数值编程字符串,一开始我是to_string(y

4399⼤数据笔试题 今天晚上参加了厦门 今天晚上参加了厦门4399公司的⼤数据笔试,⾃⼰没有拍下题⽬,⼀下是根据⾃⼰在草稿纸上简要记录回忆下 公司的⼤数据笔试,⾃⼰没有拍下题⽬,⼀下是根据⾃⼰在草稿纸上简要记录回忆下 写出来的,具体的选项记不起来,⼤体题⽬在下⾯,欢迎⼤家给出⾃⼰的见解答案 写出来的,具体的选项记不起来,⼤体题⽬在下⾯,欢迎⼤家给出⾃⼰的见解答案 ⼀、选择题 ⼀、选择题 1.四个⼟豪在⼀次聚会中⽐拼财产的逻辑推理题。 A:四个⼈中,B最富。 B:四个⼈中,C最富。 C:我不是最富有的。 D:C⽐我富,A⽐C富。 已知,其中只有⼀个⼈在说假话。 请问:四个⼈中谁最富?从最富到最不富的顺序应该怎么排? 答案:A、B两⼈的答案不同,所以⼀定有⼀个⼈在说谎。也就是说,C和D说的都是实话。所以,C不是最富的,也就是说B说的是假 话。这样可以得到顺序为:B、A、C、D。 2.与HDFS类似的框架有哪些? 3.下⾯哪⼀个程序与NameNode在⼀个节点上启动? A. SecondaryNameNode B. DataNode C. TaskTracker D. JobTracker 答案:A 4.哪个是RDD的窄依赖? 5.HBase的RowKey的设计原则是什么? 6.HBase的存储底层是什么? 答案:HBase中的所有数据⽂件都存储在Hadoop HDFS⽂件系统上,主要包括上述提出的两种⽂件类型: HFile,HBase中KeyValue数据的存储格式,HFile是Hadoop的⼆进制格式⽂件,实际上StoreFile就是对HFile做了轻量级包装, 即StoreFile底层就是HFile HLog File,HBase中WAL(Write Ahead Log) 的存储格式,物理上是Hadoop的Sequence File 7.Scala语⾔的闭包描述哪⼀项不是正确的? 8.Kafka⾼吞吐的原因? 答案: 顺序读写磁盘,充分利⽤了操作系统的预读机制。 linux中使⽤sendfile命令,减少⼀次数据拷贝,如下: 把数据从硬盘读取到内核中的页缓存。 把数据从内核中读取到⽤户空间。(sendfile命令将跳过此步骤) 把⽤户空间中的数据写到socket缓冲区中。 操作系统将数据从socket缓冲区中复制到⽹卡缓冲区,以便将数据经⽹络发出 ⽣产者客户端缓存消息批量发送,消费者批量从broker获取消息,减少⽹络io次数,充分利⽤磁盘顺序读写的性能。 通常情况下kafka的瓶颈不是cpu或者磁盘,⽽是⽹络带宽,所以⽣产者可以对数据进⾏压缩。 9.ZooKeeper的⾓⾊是什么? 答案: Leader ⾓⾊ Leader 服务器是整个zookeeper 集群的核⼼,主要的⼯作任务有两项: 事物请求的唯⼀调度和处理者,保证集群事物处理的顺序性。 集群内部各服务器的调度者。 Follower ⾓⾊ Follower ⾓⾊的主要职责是: 处理客户端⾮事物请求、转发事物请求给leader服务器。 参与事物请求Proposal的投票(Leader发起的提案,要求 Follower投票,需要半数以上follower节点通过,leader才会 commit数据)。 参与Leader选举的投票。 Observer ⾓⾊ Observer 是 zookeeper3.3 开始引⼊的⼀个全新的服务器⾓⾊,从字⾯来理解,该⾓⾊充当了观察者的⾓⾊。观察 zookeeper 集群中的最新状态变化并将这些状态变化同步到 observer 服务器上。Observer 的⼯作原理与 follower ⾓⾊基本⼀致,⽽它 和 follower ⾓⾊唯⼀的不同在于 observer 不参与任何形式的投票,包括事务请求Proposal的投票和leader选举的投票。简单来 说,observer服务器只提供⾮事物请求服务,通常在于不影响集群事务处理能⼒的前提下提升集群⾮事物处理的能⼒。 10.Spark Stage的数量有什么决定? 答案:Partition ⼆、填空题 ⼆、填空题 1.Spark的三种部署模式? 2.RDD有哪些缓存机制? 3.RDD类型有⼏种?每⼀种有哪些操作? 4.map和flatMap的区别是什么? 5.RDD的依赖⽅式? 6.有存储在Hive上的⼀张pay_log表 ser_name pay_money pay_date 1)使⽤SQL语句查询消费总额、消费总次数、消费最⼤的⾦额、消费最⼤的⾦额 2)使⽤SQL语句每⼀天当天消费的总⾦额 3)使⽤SQL语句对消费⾦额进⾏排名(⽤rank()) 4)使⽤SQL语句查询充值⾦额集合(⽤collect_set()) 7.HDFS block的默认值是多少?机架感知配置下分别存放在什么位置? 8
### 关于4399游戏开发工程师笔试选择题样例及解析 对于4399游戏开发工程师职位的笔试,通常会涉及计算机科学基础、编程能力以及特定领域知识等方面的内容。虽然具体的题目可能每年有所不同,但可以推测一些常见的考点。 #### 计算机基础知识 这类问题往往考察候选人对基本概念的理解程度: 1. **关于编译器的工作流程** 编译过程大致分为词法分析、语法分析、语义分析、中间代码生成、优化处理和目标代码生成六个阶段[^2]。 2. **数据结构与算法复杂度** 对于给定的数据集合{8, 7, 2, 5, 3, 1},如果采用快速排序方法对其进行升序排列,则第一次划分后的结果应该是怎样的?正确答案是:{1, 2, 3, 5, 7, 8}[^3] ```python def partition(arr, low, high): i = (low-1) # 最小元素索引 pivot = arr[high] for j in range(low , high): if arr[j] <= pivot: i = i+1 arr[i],arr[j] = arr[j],arr[i] arr[i+1],arr[high] = arr[high],arr[i+1] return (i+1) array_example = [8, 7, 2, 5, 3, 1] partition_index = partition(array_example,0,len(array_example)-1) print(f"After first partition: {array_example}") ``` #### 软件工程实践 这部分可能会问到有关项目管理和软件开发生命周期的问题: 1. **敏捷宣言的核心价值观是什么?** 敏捷宣言强调个体和互动高于流程和工具;可工作的软件高于详尽的文档;客户合作高于合同谈判;响应变化高于遵循计划[^4]. #### 游戏开发专业知识 针对应聘者所在的具体岗位,还会有更深入的技术细节询问: 1. **Unity引擎中的Transform组件作用是什么?** Transform用于定义GameObject的位置(position),旋转(rotation), 和缩放(scale)[^5].
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值