面试总结

  • 写在前言
  • 项目相关(这部分占用了接近30分钟)
  • 算法 + 语言基础知识 + 图形学
    • 算法题
    • C++基础知识
      • 哈希冲突有哪些解决方法?
      • 虚函数的概念?C++如何实现的虚函数?
      • C++11有哪些新特性?
      • cast 强制转换
        • static_cast强制转换
        • const_cast
        • reinterpret_cast
        • dynamic_cast
    • 图形学、渲染问题
    • 注:

写在前言

  • 这次是通过官网投递简历,好像算是提前批,总结一下面试中遇到的问题。面试时间在腾讯会议中设定为1个小时,但实际时间并未到1个小时(45Min)就结束了,可能跟我回答问题的情况有关系。

项目相关(这部分占用了接近30分钟)

  • 在简历中我写了三个参加的项目,面试官针对于每一个项目都扣得特别细致,针对其用到的算法实现细节。
  • 注意:
    面试官对一些没有什么技术难点的项目不感兴趣,但如果项目中有Unity、Unreal 中的内容,面试官还是比较感兴趣的部分,他还是会提问的,比如:我应用了Unity中的自动寻路功能,会提问具体如何实现。
  • 项目中涉及到的算法,即使是小众,他可能不了解,但他也是会让你跟他讲具体实现,直到他大概听懂,注意:还有具体的实现中遇到的问题如何解决?采用什么步骤解决问题、数据结构等等

算法 + 语言基础知识 + 图形学

算法题

  • 提问的是基本就是LeetCode第一题 : The Sum ,只是面试官没有对返回索引或者是返回两个数做限制

  • 这个问题很简单,当时也是参考过题解,记得很清楚,所以答上了
    问题的解法很多:

  • map法(仅列举这个方法) 题目传送门

    vector<int> twoSum(vector<int>& nums, int target) {int len=nums.size();unordered_map<int,int> mymap(len);unordered_map<int,int>:: iterator it;for(int i=0;i<len;++i){if((it=mymap.find(target - nums[i]))!=mymap.end())return vector<int>{it->second,i};else{mymap.insert(pair<int,int>(nums[i],i));}}return vector<int>{};
    }
    

C++基础知识

哈希冲突有哪些解决方法?

  • 1.开放定址法
    用开放定址法处理冲突得到的散列(哈希)表叫做 闭散列表。
    所谓开发定址法,就是由关键码得到的哈希地址一旦产生冲突,就去寻找下一个空的哈希地址,只要哈希表足够大,空的哈希地址总能找到,并将记录存入。
  • 这个问题我只答出了完后移动一个位置和使用链表的形式,没有答完整

找到下一个空哈希地址的方法:

  • ①线性探测法
    当发生冲突时,线性探测法从冲突位置的下一个位置起,依次寻找空的散列地址。公式为
    H i =(H(key)+d i )%m (d i=1,2,3,4,…,m-1) m 为闭散列表的长度。
  • ②二次探测法
    当发生冲突时,二次探测法寻找下一个散列地址的公式为
    H i =(H(key)+d i )%m (d i =1 2 ,-1 2 ,2 2 ,-2 2 ,…,q 2 ,-q 2 ) m 为闭散列表的长度。
  • ③随机探测法
    当发生冲突时,随机探测法探测下一个散列地址的位移量是一个随机数列,公式为
    Hi=(H(key)+di)%m(di是一个随机数列) m 为闭散列表的长度。
  • 2.拉链法
  • ①用拉链法处理冲突构造的散列表叫做开散列表。
    拉链法的基本思想是,将所有散列地址相同的记录,即所有关键码为同义词的记录存储在一个单链表中——称为同义词子表,在散列表中存储的是所有同义词子表的头指针。

虚函数的概念?C++如何实现的虚函数?

  • 这部分我答得有点差,我说虚函数是在基类中定义了,由子类进行实现,这也体现了类的多态性。
  • 详细讲解见 ---->这是一篇写的比较详细的博客

C++11有哪些新特性?

cast 强制转换

  • 共四种: static_cast,const_cast,reinterpret_cast,dynamic_cast , 因强制转换存在风险,故引入强制转换机制
  • 目的:
    为了克服C语言强制类型转换的以下三个缺点:

    • 没有从形式上体现转换功能和风险的不同
    • 将多态基类指针转换成派生类指针时不检查安全性,,即无法判断转换后的指针是否指向一个派生类对象
    • 难以在程序中定位进行了强制转换的地方

static_cast强制转换

  • 程序上标明进行转换 基本等价于隐式转换 是适用于明确需要隐式转换的地方

  • 可用于低风险的转换
    整型和浮点型
    字符和整型
    转换运算符
    *空指针转换为任何目标类型

  • 不可以用于风险较高的转换
    不同类型的指针之间的转换
    整型和指针之间的互相转换
    不同类型的引用之间的转换

    int n=5;

    父类转子类 不安全

    子类转父类 安全

    CFather* pFather = nullptr;//父类指针
    CSon* pSon = nullpter;     //子类指针//父类转子类 不安全
    pSon=pFather;//隐式转换  编译不会通过
    pSon=static_cast<CSon*> pFather;//静态转换 不安全 没有提供运行时检测//子类转父类  安全(子类多 包含着父类  不会超过父类的界限)
    pFather=pSon;
    pFather=static_cast<CFather*>pSon;
    

const_cast

 仅用于指针、引用、this指针 的转换
  • 应用1: 去掉函数前的限制

    class A{public:CTest():m_nTest(2){}//初始化列表 对成员m_nTest进行赋值//常成员函数void foo(int nTest) const{//void* p=this;//无法隐式转换//m_nTest=nTest;//错误const_cast<CTest*>(this)->m_nTest=nTest;//可执行  相当于去掉了常成员函数中的const常量限制}public:int m_nTest;}
    

reinterpret_cast

  • 显示强转,各种类型的指针间强行装换
    int* p=n;
    char* q=p;
    pFather=static_cast<CFather*>pSon;

dynamic_cast

  • 用于虚函数的基类与派生类之间的指针、引用的转换

    • 基类必须具备虚函数(具有多态类类型的向下转换使用)
    • 运行时检查,转型不成功则返回NULL
    • 非必要不使用
  • 可以在运行时做检测(依赖RTTI,有额外的开销,只有向下转换才会使用),如果会出错,则转换指向NULL,代码不会报错

图形学、渲染问题

  • 渲染管线的顺序
  • 在三维空间中,如何判断一个点在一个三角面中

注:

  • 关于上面问题的解答(不知道是不是说全或说正确了,希望大家可以一起讨论,并指点迷津)

腾讯 天美一面凉经<2021.03.19>相关推荐

  1. 【2021.03.19】长调用与短调用

    要点回顾 通过前文知道JMP FAR可以实现段间跳转,如果要实现跨段的调用就必须要学习CALL FAR,也就是长调用. CALL FAR 比 JMP FAR 要复杂,JMP并不影响堆栈,而CALL指令 ...

  2. 腾讯天美工作室开发员工的收入证明流出:税后收入 250 万,月均 20 万

    公众号后台回复"图书",了解更多号主新书内容 11月23日晚,腾讯天美工作室一游戏客户端开发员工的收入证明在朋友圈广为流传,且先后在脉脉.知乎登上热搜,引发网络热议.收入证明文件显 ...

  3. 【2020校招总结】接受社会的毒打,收获腾讯天美、字节跳动、网易互娱、华为等offer(开发岗)

    文章目录 0.背景介绍 1.时间节点 2.关于暑期实习 3.关于刷题及看书学习 4.关于测评 5.关于笔试 6.关于面试 7.关于岗位选择 0.背景介绍 回忆起下决心转行,已经快一年的时间了,当然,如 ...

  4. 曝腾讯天美程序员税后250万,月均20万

    11月23日晚,腾讯天美工作室一游戏客户端开发员工的收入证明在朋友圈广为流传,且先后在脉脉.知乎登上热搜,引发网络热议. 收入证明文件显示,这个员工从2012年就开始在腾讯(成都)天美L1工作室工作, ...

  5. 腾讯天美六位TA:技术美术这份职业会长期存在吗?

    本文首发于"腾讯天美工作室群"知乎机构号 技术美术,英文名是Technical Artist,简称TA.他们是最懂程序的美术,也是最懂美术的程序,他们隐藏在游戏研发团队里,近几年也 ...

  6. 2023秋招--腾讯天美--游戏客户端--二面面经

    前言 2023秋招–腾讯天美–游戏客户端–一面面经 二面:9/5 - 30min 面试官提问:20min 自我介绍. 大学学了哪些课程? C#用的多还是C++? 内存对齐了解吗?说下原理以及为什么需要 ...

  7. 2023秋招--腾讯天美--游戏客户端--三面面经

    前言 2023秋招–腾讯天美–游戏客户端–一面面经 2023秋招–腾讯天美–游戏客户端–二面面经 三面:9/8 - 30min 面试官提问:25min 自我介绍. 前两面面试官问的技术也比较多了,随便 ...

  8. 腾讯天美后端2018实习一面面经

    腾讯天美后端2018实习面经 看了那么多面经,我最大的收获就是认识到自己的基础很薄弱.真的是什么都问的.学习才是最重要的. 目前进行到一面结束,我会持续更. 简历内推 学长都是愿意帮助你的,他推了是有 ...

  9. 职教平台粉笔科技递交港股IPO招股书:2021年1-9月营收26.3亿

    2月28日晚间消息,职业教育平台粉笔科技向香港联交所递交IPO招股书,正式启动上市计划,中金.花旗.美银证券为联席保荐人. 招股书显示,粉笔科技主营业务为成人职业教育服务,在线培训.线下培训以及教材. ...

最新文章

  1. LTV 即用户生命周期价值
  2. netbios 网上基本输入输出系统 简介
  3. linux上添加下载源的时候报错:无法添加 PPA:“‘此 PPA 不支持 bionic‘”,以及关于linuxPPA的介绍,如何查找软件包的PPA源,并添加PPA
  4. 逆向与分析-WebBrowserPassView消息分析
  5. 2018/5/12日更新Win7x86x64纯净安装旗舰版WIM下载(启用内置管理员).....
  6. ubuntu 14.04 配置 java 环境
  7. layui 日期范围选择器_UI设计素材模板|完美日期选择器
  8. 投资为什么很难进步——越不懂 越自信︱投资道
  9. MATLAB设置使用语言为中文
  10. C# NPOI 导出Excel 小数位数控制
  11. 地图,GPS位置地图坐标系:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图),OpenGIS
  12. 系统缺少OBS Studio的运行时组件 解决方法
  13. GO语言特殊常量之iota
  14. 利息计算器V3.0感悟
  15. 最详细的Java入门完整教程,学Java先收藏了
  16. 05 pyecharts 基本图表(示例代码+效果图)
  17. 腾讯 在我过往人生中的一些记忆
  18. 免费亚马逊云服务器搭建
  19. 仿5173游戏交易平台系统SQL注入(可直接脱裤)+Getshell
  20. 用mysql创建数据库school_Mysql 数据库创建基本步骤

热门文章

  1. java的 oo_Java OO 知识总结
  2. php接入Google身份验证器
  3. 前端的第一天(HTML)
  4. 操作必须使用一个可更新的查询 ,解决
  5. 计算机病毒与恶意代码防范技术
  6. Swift4 使用GCD实现计时器
  7. 考研[*高数*]学习笔记汇总(全)
  8. 财务 计算机网络,应用计算机网络进行财务管治
  9. 一个购房者的辛酸经历(纯属娱乐)
  10. [置顶] CVT广州视源笔试面试经历(2013实习生招聘)