- 第一题
吃货馋嘴分披萨
,考察深度优先遍历和动态规划处理环形数组问题,在一个环形数组(比萨)中,每次可以选择左边或右边的元素,并且每次选择的元素必须是当前可选元素中的最大值,求能够选择的元素的最大和。 - 第二题
字符串变换最小字符串
,考察对字符串的处理,从后面向前面查找,把倒数第一个字典序最小字符的与第一个字符替换,保证最小。 - 第三题
满足要求的最长子串
,考察滑动窗口+字符串的处理,使用滑动窗口来找出只包含一个字母和任意数量数字的最长子串。
近期技术面试问题回顾与总结
Posted on
In
Offer
- 掌握计科五大件:
编译原理
、计网
、计组
、操作系统
、数据结构和算法
,常见面试题. - 具有一定的代码框架设计能力,熟悉常用
设计模式
, 有面向对象开发经验。 - 熟练掌握
网络编程
、熟悉TCP/UDP
、HTTP
协议及Socket
,以及其他以太网通信协议。 - 熟练掌握
C++11
之后的语言特性,保证代码的可维护性和可扩展性。 - 掌握
系统构建
、调试
、异常分析
和性能优化
的基本方法。 - 掌握
多线程
、异步编程
等并发编程
开发必要方法、框架和组件,掌握性能优化方法。 - 理解并能够应用各种数据
序列化和反序列化
技术,如JSON, XML, Protocol Buffers等。 - 具备较强的逻辑思维和代码阅读能力;能持续学习,钻研问题,不断提升质量和效率。
GoogleTest 快速入门
Posted on
In
C/C++
- 在项目中使用 GTest 编写单测以保证代码质量是必要的,通过构造各种单元测试的case,可以测试功能是否正确,发现肉眼不容易发现的bug。
- GTest 是 Google 发布的一款非常优秀的开源 C/C++ 单元测试框架,它简单易用,功能完善,已被应用于多个开源项目及Google内部项目中:ChromeWeb浏览器、LLVM编译器、ProtocolBuffers数据交换格式等。
- 本文分享 GTest 的核心用法、常用技巧以及单测编写的思路,包含最必要、最常用的内容,能覆盖大部分场景的单测需求,同时会引用外部文档供扩展阅读。
Tmux 使用手册
Posted on
In
Tools
- Tmux 即 Terminal Multiplexer,是一个强大的终端复用器,可以在一个终端窗口中运行多个终端会话。
- 本文主要根据个人工作中常用的 Tmux 应用场景进行相关指令和快捷键的总结。
DDS 协议介绍
Posted on
In
Works
- DDS是一种为实时系统设计的发布-订阅通信协议,其特点是去中心化、支持多种QoS机制和实时通信,和SOME/IP类似但不完全相同。
- RTI Connext DDS和Fast DDS(以前称为Fast RTPS)都是实现了DDS规范的中间件,本文是对DDS相关概念的介绍,以及对RTI Connext DDS和Fast DDS的一些基本对比。