英雄游戏面经---冷不丁的挂了

十月份的KPI面,我也是无语,真的全部都答上了,面试官问问题的时候 总停顿十几秒 场面上真的尴尬。

不过没有游戏经验,就这样吧。

一、笔试题:

二叉树权值

有一棵二叉树,树上每个点标有权值,权值各不相同,请设计一个算法算出权值最大的叶节点到权值最小的叶节点的距离。二叉树每条边的距离为1,一个节点经过多少条边到达另一个节点为这两个节点之间的距离。 给定二叉树的根节点root,请返回所求距离。 我看大佬用的map算二进制编码,然后计算距离。 大佬们太秀了,好好学学

struct TreeNode{
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};

void GetCode(map<int,string>& treeMap,TreeNode* root,string s)
{
    if(root->left==nullptr && root->right==nullptr){
        //给出01编码
        treeMap[root->val] = s;
        return;
    }
    if(root->left!=nullptr){
        GetCode(treeMap,root->left,s+'0');
    }
    if(root->right!=nullptr){
        GetCode(treeMap,root->right,s+'1');
    }
}


int getDis(TreeNode* root)
{
    if(root == nullptr)
        return 0;

    map<int,string> treeMap;

    GetCode(treeMap,root,"");
 //利用迭代器获取开头结尾的值(map会自动排序)
    auto minNum = treeMap.begin();
    string s1 = minNum->second;
    auto maxNum = (--treeMap.end());
    string s2 = maxNum->second;

 //根据编码计算距离
    int i = 0,j = 0;
    while(i<s1.size() && j<s2.size() && s1[i] == s2[j]){
        i++;j++;
    }
    return s1.size() + s2.size() - i - j;
}


分割链表

class Solution {
public:
    ListNode* partition(ListNode* head, int x) {
        ListNode* small = new ListNode(0);
        ListNode* smallHead = small;
        ListNode* large = new ListNode(0);
        ListNode* largeHead = large;
        while (head != nullptr) {
            if (head->val < x) {
                small->next = head;
                small = small->next;
            } else {
                large->next = head;
                large = large->next;
            }
            head = head->next;
        }
        large->next = nullptr;
        small->next = largeHead->next;
        return smallHead->next;
    }
};

最大正方形

class Solution {
public:
    int maximalSquare(vector<vector<char>>& matrix) {
        if(matrix.size() == 0 || matrix[0].size() == 0) return 0;
        int rows = matrix.size();
        int cols = matrix[0].size();
        vector<vector<int>> dp(rows, vector<int>(cols,0));
        int maxSize = 0;
        for(int i = 0; i < rows; ++i){
            for(int j = 0; j < cols; ++j){
                if(matrix[i][j] == '1'){
                    if(i == 0 || j == 0){
                        dp[i][j] = 1;
                    }else{
                        dp[i][j] = min(dp[i-1][j],min(dp[i-1][j-1], dp[i][j-1])) + 1;
                    }
                    maxSize = max(dp[i][j], maxSize);
                }
            }
        }
        return maxSize*maxSize;
    }
};

二、面试

  1. 自我介绍
  2. Web服务器简单介绍
  3. epol机制
  4. 红黑树
  5. 相比哈希表的优势
  6. 线程池机制
  7. 线程认是如何被唤醒的
  8. 两种事件并发模式以及区别
  9. TCP、UDP区别
  10. TCP分为几部分
  11. TCP是如何保证可靠性的
  12. RPC讲一下
  13. TCP是如何进行流量控制
  14. 滑动窗口机制具体讲讲
  15. Redis底层通信原理 五种数据结构
  16. MySQL索引功能
  17. 索引的种类
  18. 如何解决哈希冲突
  19. 堆排序介绍一下
  20. 如何实现堆排序 口述算法
  21. 插入30个数字的堆排序的效率
  22. C++多态
  23. 迭代器失效的原因

基本都答上了 比似乎也A了 就是挂了 无语。。。

三、面试笔试题

不用递归实现二叉树的中序遍历

合并k个升序链表笔试题:

分割链表

最大正方形

面试笔试题

不用递归实现二叉树的中序遍历

合并k个升序链表

#英雄游戏#
全部评论
两种事件并发模式以及区别这个是什么
点赞 回复 分享
发布于 2022-11-30 12:57 浙江
二叉树权值秀到了
点赞 回复 分享
发布于 2022-11-30 12:59 浙江
请问大佬红黑树是怎么问的呀,要记住他那些插入删除节点时候的各种旋转什么的细节嘛
点赞 回复 分享
发布于 2023-02-28 18:11 河南

相关推荐

02-26 17:00
已编辑
中山大学 游戏策划
【一面&nbsp;|&nbsp;32分钟】流程顺畅,问题逻辑清晰,交流氛围比较友好吧。Q1:你玩《百炼英雄》《向僵尸开炮》这类休闲游戏多久了?深度体验约1-2个月,因秋招筹备暂停进一步探索。Q2:看你主机经历非常丰富,为什么会玩这些休闲小游戏,感觉和你的游戏偏好不太符合?我中等体量游戏玩得比较少,较长的空余时间就玩主机游戏,碎片时间就玩休闲小游戏。Q3:两款游戏更喜欢哪款?为什么?《向僵尸开炮》,原因:1.核心吸引力:肉鸽随机性+割草爽感+高表现力特效;2.养成机制:数值成长与技能构筑的强正反馈;3.《百炼英雄》的短板:策略性与玩家操控影响弱,进度受数值卡点限制严重,不够爽。Q4:《向僵尸开炮》里你最喜欢什么系统?社交系统吧,因为它如下创新:1.轻社交重交互:弱化情感绑定,强化资源协作,比如公会任务、公会BOSS战等等;2.有类似协战的机制:o低战力玩家可以借力通关,激发成长欲望;o高战力玩家可以展示实力,满足炫耀需求;o通过经济循环,协战表现,刺激低氪玩家内购意愿。Q5:协同作战的机制会不会削弱低战力玩家的氪金动机?不会,游戏有相应的防机制滥用设计:1.战力匹配规则限制:小R可以邀请中R,中R可以邀请大R,但会限制过于悬殊的跨级协助;2.游戏动态难度调整:在协同作战的情况下,怪物数值按乘法区间提升,强制玩家回归肝/氪路径。3.关卡限制:只有在通过普通模式后的精英模式和特定活动关卡下,玩家才可以邀请其他玩家来助战。Q6:你觉得这个游戏做得最垃圾的地方是?1.元素辨识度低,效果同质化,比如减速/冻结/麻痹等区分不足;2.优化方向:·关键节点增加元素协同增益,比如风+火触发扩散效果,丰富双人作战时的协作思路;·强化元素特性,构建差异化策略选择。Q7:对这款游戏公会系统的评价?1.采用伤害累计制+个人/全公会双线奖励,适配碎片化时间的游戏体验;2.缺乏差异化玩法,可以探索动态的公会事件或跨服竞争等等。Q8:将《三国杀》改编为商业化小程序游戏的思路?我会做轻量化改造:1.核心玩法:自走棋+肉鸽随机事件,降低策略门槛;2.副玩法:爬塔探索+类《Last&nbsp;War》轻量对战;3.运营策略:o赛季制平衡:回炉弱势武将,引入新角色;o分层体验:新人福利/巅峰赛挑战/BattlePass付费驱动。(注:现在《三国杀》真的有自走棋了笑死😆)Q9:你这款《三国杀》自走棋怎么做养成体系?我会做多维度的成长线设计,1.&nbsp;局外:装备/宝石/武器合成;2.局内:随机资源投放的阶段性强化。Q10:那这样做要如何避免大R碾压中小R?1.&nbsp;2V2赛季匹配,强弱组合+ELO机制;2.&nbsp;局内随机事件干扰,部分抵消数值养成差距。 【二面&nbsp;|&nbsp;33分钟】感觉是压力面😰,面试过程中一直被打断、反驳、追问,而且还提问到我不太了解的薄弱项mmo游戏,在紧张状态下思路就没有上一面那么流畅了。Q1:玩得比较深入的一款休闲游戏?《向僵尸开炮》吧。Q2:描述这款游戏的核心玩法?割草战斗→击败每个波次获取随机词条→词条选择→技能树构筑→挑战20波次通关。Q3:既然每个人都只有二十次固定的词条升级,我为什么要充钱呢?1.&nbsp;初始词条解锁/词条效益提升;2.功能性扩展以及丰富游戏体验,比如获取佣兵/机甲/枪械皮肤。Q4:不管你充钱解锁什么其他功能,我充钱并没有让我的核心玩法得到提升啊,你思考一下到底是这个随机肉鸽词条还是数值成长是核心体验?(懵逼,这俩有冲突吗?数值设计就应该为核心体验服务吧……)我还是觉得是这个随机词条,只不过在不同阶段核心玩法和氪金带来的趣味性的提升的占比不同。前期为策略主导,依赖词条构筑破关;玩到一定阶段就会有数值卡点,这时付费收益占比就提升了。Q5:你玩这个游戏做养成构筑有哪些思路?1.&nbsp;围绕元素/技能主题选择宝石/机甲组合;2.&nbsp;弥补元素或技能短板尽量避免拿到比较差的构筑时无法通关。Q6:假设我是一个对它的宝石系统完全不了解的人,你来给我介绍一下它的宝石系统。获取:抽卡机制产出品质分级宝石;镶嵌:装备槽位搭配增益效果,比如激光伤害+20%;合成:多个低品质合成进阶高品质宝石,白→绿→蓝→紫→橙→红→彩。Q7:说明白就是问你这游戏有哪些流派?(懵逼,浅答了论坛上那些术语黑话)Q8:如果要在《向僵尸开炮》里加一条新的养成线,你会怎么加?1.做一条元素或者技能衍生的养成线,在技能图纸等级关键节点(5/10/15级)赋予协战专属增益;2.设置短中长线目标,促进玩家策略交流与元素搭配。Q9:一条养成线总要有数值的设计吧,你打算怎么做数值设计?我会做玩家体感导向的数值投放,前期/后期投放高感知属性(攻击/暴击);中期投放玩家感知较弱的数值,但同时投放特殊加成维持养成动力。Q10:看你玩ACT类型比较多,我想把它做成一个手游,比如说mmo类型的,要做什么改动?(其实是ARPG,&nbsp;面试官分不太清两者的区别,而且mmo是我巨大短板,尴尬)1.玩法重心迁移:弱化剧情,强化多人副本/社交玩法(公会/师徒);2.战斗调整:简化操作,提升战前养成深度;3.数值重构:平衡PvP生态,延长成长曲线。Q11:就只让你改动ACT(ARPG)游戏里两处地方,你怎么改?1.&nbsp;搞赛季制,保障长线运营与内容迭代;2.&nbsp;控制数值,避免ARPG数值直接移植导致的PvP失衡。【三面】盲猜是主策或者设计人之类的……让我抛开商业化的思路,从玩法上思考,然后就拆解了一下皇室战争、王者荣耀啥的,可能话不太投机吧就挂了……卑微🐭🐭还是太菜了,秋招被各路大神碾压得没脾气了,发点凉经积攒点运气看看春招有没有机会翻身罢……#游戏求职进展汇总##三七互娱##游戏行业##牛客创作赏金赛##游戏##游戏策划###非技术面试记录#
点赞 评论 收藏
分享
评论
8
38
分享

创作者周榜

更多
牛客网
牛客企业服务