编码面试的二进制备忘单
简介
二进制数字系统和位操作的知识在编码面试中不太重要,因为大多数软件工程师不需要处理位,这在处理低级系统和编程语言时更常用。他们有时仍然会被问到,所以你至少应该知道如何在你选择的编程语言中将一个数从十进制形式转换成二进制形式,反之亦然。
学习资源
拐角情况
- 注意并检查溢出/下溢
- 负数
技巧
有时会问一些涉及二进制表示和位运算的问题,您必须非常熟悉如何在您选择的编程语言中将一个数字从十进制形式转换为二进制形式(反之亦然)。
一些有用的实用程序片段:
技术 | 密码 |
---|---|
第 k 个测试位被置位 | num & (1 << k) != 0 。 |
设置第 k 个位 | num |= (1 << k) |
关闭第 k 个位 | num &= ~(1 << k) 。 |
切换第 k 个位位 | num ^= (1 << k) 。 |
乘以 2 k | num << k |
除以 2 k | num >> k |
检查一个数是否是 2 的幂 | (num & num - 1) == 0 或(num & (-num)) == num |
交换两个变量 | num1 ^= num2; num2 ^= num1; num1 ^= num2 |
基本问题
如果你在学习这个话题,这些是需要练习的基本问题。
推荐练习题
这些是在你为题目学习并练习了基本问题后推荐练习的问题。
推荐课程
AlgoMonsterT3】
AlgoMonster 旨在帮助你在最短的时间内通过技术面试。由谷歌工程师开发的 AlgoMonster 使用数据驱动的方法来教你最有用的关键问题模式,并有内容帮助你快速修改基本的数据结构和算法。最重要的是,AlgoMonster 不是基于订阅的——支付一次性费用,就可以获得终身访问。 今天加入七折优惠→
寻找编码面试:编码问题的模式
设计大师的这门课程扩展了推荐练习题中的问题,但从问题模式的角度来进行练习,这是一种我也同意的学习方法,我个人也使用这种方法来更好地编写面试代码。本课程允许你用 Java、Python、C++、JavaScript 来练习选定的问题,并提供这些语言的示例解决方案以及一步一步的可视化。学习和理解模式,而不是背答案! 现在获得终身使用权→
掌握编码面试:数据结构+算法
这本 Udemy 畅销书是评分最高的面试准备课程之一(4.6 星,21.5k 评分,135k 学生),包含了价值 19 个小时的内容。像技术面试手册一样,它超越了编码面试,涵盖了简历,非技术面试,谈判。是一个全包!请注意,JavaScript 用于编码演示。 结账→