版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32146369/article/details/89054403
一、基础
原文《crack the code interview》,出资谷歌自身面试官之手,下面是中文译文。
- 1.1 判断一个字符串中的字符是否唯一
- 1.2 字符串翻转
- 1.3 去除字符串中重复字符
- 1.4 写一个函数判断两个字符串是否是变位词
- 1.5 写一个函数,把字符串中所有的空格替换为%20
- 1.6 矩阵旋转
- 1.7 矩阵行列置0
- 1.8 利用已知函数判断字符串是否为另一字符串的子串
- 2.1 从链表中移除重复结点
- 2.2 实现一个算法从一个单链表中返回倒数第n个元素
- 2.3 给定链表中间某结点指针,删除链表中该结点
- 2.4 求由两个链表结点组成的数之和
- 2.5 给定一个循环链表,实现一个算法返回这个环的开始结点
- 3.1 如何只用一个数组实现三个栈
- 3.2 实现一个栈,要求实现min函数以返回栈中的最小值
- 3.3 实现数据结构SetOfStacks来模拟叠盘子
- 3.4 编程解决汉诺塔问题
- 3.5 使用两个栈实现一个队列
- 3.6 写程序将一个栈按升序排序
- 4.1 用一个函数判断一棵树是否平衡
- 4.2 设计算法判断有向图两结点间是否存在路径
- 4.3 将递增数组构建成一颗最小高度二叉树
- 4.4 将二叉树每一层结点构建成一个链表
- 4.5 查找二叉查找树的任意给定结点的“下一个”结点
- 4.6 找出一棵二叉树中两个结点的第一个共同祖先结点
- 4.7 判断一棵二叉树是否为另一棵二叉树的子树
- 4.8 输出二叉树中路径上结点值之和为给定值的所有路径
- 5.1 写程序使整数N中第i位到第j位的值与整数M中的相同
- 5.2 给定一个字符串类型表示的小数,输出其二进制表示
- 5.3 给定一个整数x,找出另外两个二进制表示中1的个数和x相同的数
- 5.4 解释以下代码的作用:((n & (n-1)) == 0)
- 5.5 写程序计算从整数A变为整数B需要修改的二进制位数
- 5.6 交换一个整数二进制表示中的奇数位和偶数位
- 5.7 写程序找出丢失的整数,要求时间复杂度O(n)
- 6.1-6.6 程序员”脑筋急转弯”
- 7.1 为通用卡牌游戏设计数据结构,并设计子类
- 7.2 为电话呼叫中心设计类和数据结构
- 7.3 用面向对象的方法设计一个音乐播放机
- 7.4 用面向对象思想设计一个国际象棋游戏
- 7.5 利用OOP思想设计在线读书系统
- 7.6 设计一个拼图游戏的数据结构
- 7.7 如何设计一个聊天服务程序
- 7.8 用面向对象思想设计奥赛罗游戏(Othello)
- 7.9 为一个内存文件系统设计数据结构和算法
- 7.10 使用C++实现一个垃圾回收器
- 8.1 写一个函数来产生第n个斐波那契数
- 8.2 机器人路径计算
- 8.3 写一个函数返回一个集合中的所有子集
- 8.4 写一个函数返回一个串的所有排列
- 8.5 实现一个算法打印出n对括号的有效组合
- 8.6 实现图像处理软件中的“填充”函数
- 8.7 有25分,10分,5分和1分的硬币无限个,计算组成n分的组合数
- 8.8 经典八皇后问题
- 9.1 写一个函数将数组B融入数组A,并使其有序
- 9.2 写一个函数对字符串数组排序,使所有变位词都相邻
- 9.3 在一个数字中查找特定元素
- 9.4 如何给一个2G文件中的字符串排序?
- 9.5 写一个函数找到给定字符串的位置
- 9.6 在一个矩阵中找出特定的数
- 9.7 写一个函数模拟叠罗汉节目
- 10.1-10.7 程序员面试——数学相关题目
- 11.1-11.6 程序员面试—测试技能测试
- 12.1 股价信息摘要整合方案
- 12.2 如何为社交网站(如facebook,新浪微博)设计数据结构
- 12.3 在40亿个整数值中查找特定数据
- 12.4 数组去重(限制内存为4kb)
- 12.5 如果让你设计一个网络爬虫,你怎么避免陷入无限循环?
- 12.6 10亿个url,每个url对应一个网页,如何检测重复的网页?
- 12.7 如何设计一个支持TB级别数据的数据库
- 13.1 用C++写一个函数,输出文件的最后k行。
- 13.2 浅析哈希表和STL map
- 13.3 C++中的虚函数是如何工作的?
- 13.4 深拷贝和浅拷贝有什么区别,如何使用?
- 13.5 C语言关键字”volatile”的作用?
- 13.6 C++中名字隐藏是指什么?
- 13.7 为什么基类中的析构函数要声明为虚析构函数?
- 13.8 写一个函数,返回传入数据结构的一份完全拷贝
- 13.9 写一个智能指针类(smart_ptr)
- 15.1 写一条SQL语句找到每个部门员工的数量
- 15.2 SQL的连接有哪些不同的类型?并解释其异同点
- 15.3 什么是反范式?它的优缺点是什么?
- 15.4 画一个数据库的(ER图),实体包括:公司、人、 专业人士
- 15.5 写SQL查询语句查询成绩排名前10%的学生
- 16.1 解释术语:虚拟内存、缺页中断、抖动
- 16.5 写程序判断一台机器是大端序还是小端序
- 16.10 写一个名为my2DAlloc的函数,用它开辟一个二维数组
- 17.1 解释一下,在你往浏览器中输入一个URL后都发生了什么,要尽可能详细
- 17.2 介绍常用路由协议。例如:BGP,OSPF,RIP
- 17.3 比较IPv4和IPv6协议
- 17.4 网络/子网掩码是什么?网络路由是什么?
- 17.5 TCP和UDP之间有什么区别?
- 18.1 线程和进程的区别是什么?
- 18.2 你如何测量一次上下文切换所需时间?
- 18.3 实现一个单例模式的模板
- 18.5 线程调度
- 19.1 不能使用临时变量,交换两个数
- 19.2 设计算法检查某人是否赢得了井字游戏
- 19.3 写一个算法计算n的阶乘末尾0的个数
- 19.4 你使用if-else及任何比较操作符,返回两个数中的较大者
- 19.5 写一个函数来模拟游戏
- 19.7 求最大连续子序列和
- 19.8 统计给定单词在一本书中出现的次数
- 19.10 给定一个能生成1到5随机数的函数,如何利用它来生成1到7的随机数。
- 19.11 设计一个算法,找到数组中所有和为指定值的整数对
- 20.1 不能使用+号或其它算术运算符求两个数的和
- 20.2 写一个随机洗牌函数
- 20.3 写一个函数,随机地从大小为n的数组中选取m个整数
- 20.4 写一个函数,计算0到n之间2的个数。
- 20.5 给出两个单词,找到它们的最短
二、《程序员编程艺术:面试和算法心得》
本书出自知名博主july之手,讲解细致,举一反三,是不可多得的资料。
第一部分 数据结构
- 第一章 字符串
- 第二章 数组
- 第三章 树
第二部分 算法心得
- 第四章 查找匹配
- 第五章 动态规划
第三部分 综合演练
- 第六章 海量数据处理
- 第七章 机器学习
-
附录 更多题型