原版内容转自:CTCI面试系列——谷歌面试官经典作品 | 快课网

此系列为C#实现版本

谷歌面试官经典作品(CTCI)目录

 

1.1 判断一个字符串中的字符是否唯一

1.2 字符串翻转

1.3 去除字符串中重复字符

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-20章请见   编程艺术

cracking the coding interview系列C#实现的更多相关文章

  1. Cracking the coding interview

    写在开头 最近忙于论文的开题等工作,还有阿里的实习笔试,被虐的还行,说还行是因为自己的水平或者说是自己准备的还没有达到他们所需要人才的水平,所以就想找一本面试的书<Cracking the co ...

  2. Cracking the coding interview 第一章问题及解答

    Cracking the coding interview 第一章问题及解答 不管是不是要挪地方,面试题具有很好的联系代码总用,参加新工作的半年里,做的大多是探索性的工作,反而代码写得少了,不高兴,最 ...

  3. Cracking the Coding Interview(Trees and Graphs)

    Cracking the Coding Interview(Trees and Graphs) 树和图的训练平时相对很少,还是要加强训练一些树和图的基础算法.自己对树节点的设计应该不是很合理,多多少少 ...

  4. Cracking the Coding Interview(Stacks and Queues)

    Cracking the Coding Interview(Stacks and Queues) 1.Describe how you could use a single array to impl ...

  5. 《Cracking the Coding Interview》读书笔记

    <Cracking the Coding Interview>是适合硅谷技术面试的一本面试指南,因为题目分类清晰,风格比较靠谱,所以广受推崇. 以下是我的读书笔记,基本都是每章的课后习题解 ...

  6. Cracking the coding interview目录及资料收集

    前言 <Cracking the coding interview>是一本被许多人极力推荐的程序员面试书籍, 详情可见:http://www.careercup.com/book. 第六版 ...

  7. 《Cracking the Coding Interview》——第13章:C和C++——题目6

    2014-04-25 20:07 题目:为什么基类的析构函数必须声明为虚函数? 解法:不是必须,而是应该,这是种规范.对于基类中执行的一些动态资源分配,如果基类的析构函数不是虚函数,那么 派生类的析构 ...

  8. 《Cracking the Coding Interview》——第5章:位操作——题目7

    2014-03-19 06:27 题目:有一个数组里包含了0~n中除了某个整数m之外的所有整数,你要设法找出这个m.限制条件为每次你只能用O(1)的时间访问第i个元素的第j位二进制位. 解法:0~n的 ...

  9. 二刷Cracking the Coding Interview(CC150第五版)

    第18章---高度难题 1,-------另类加法.实现加法. 另类加法 参与人数:327时间限制:3秒空间限制:32768K 算法知识视频讲解 题目描述 请编写一个函数,将两个数字相加.不得使用+或 ...

随机推荐

  1. MFC笔记7

    1.VS中显示行号 工具 -> 选项 -> 文本编辑器 -> C/C++ -> 行号 2.VS中调整字体大小 工具 -> 选项 -> 环境->字体和颜色 3. ...

  2. php利用simple_html_dom类,获取页面内容,充当爬虫角色

    PHP脚本扮演爬虫的角色,可能大家第一时间想到可能会是会正则,个人对正则的规则老是记不住,表示比较难下手,今天工作中有个需求需要爬取某个网站上的一些门店信息 无意间在网上看到一个比较好的类库叫:sim ...

  3. sh 了解

    shell 脚本中 `dirname $0` 在命令行状态下单纯的执行时没有意义的,因为他返回当前路径的“.”. 在脚本中他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行的程序的相对位置 ...

  4. vue项目如何通过前端实现自动识别并配置服务器环境地址

    前言: 一般来说,一个web项目的生产环境和测试环境的服务器地址一旦确定下来,很少会频繁变动的.那么就可以单独写一个脚本文件,通过当前访问的域名来判断当前的访问环境,然后再通过一定的规则获取对应的服务 ...

  5. python中sys.path--学习

    本着下定义开头吧:python中import某个A模块时,首先会从python的内置模块中查找是否含义该模块的定义若未查询到会从sys.path对应的模块路径查询是否含有对应模块的定义,如果搜索完成依 ...

  6. Python中使用RabbitMQ

    一 RabbitMQ简介 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息 ...

  7. Elasticsearch tshark 封包分析 (转)

    Elasticsearch tshark 封包分析 使用wireshark能解決許多網路問題,將側錄下來的封包傳至Elasticsearch上方便分析製作及時報表.tshark為wireshark的命 ...

  8. KD-树(上)

    来自于https://zhuanlan.zhihu.com/p/23966698 思路篇 导语:kd 树是一种二叉树数据结构,可以用来进行高效的 kNN 计算.kd 树算法偏于复杂,本篇将先介绍以二叉 ...

  9. Python_day5

    局部变量 全局变量 def test(): # 声明使用全局变量x global x x = 100 y = 300 # 局部变量:作用域和生存周期仅在从定义开始到函数结束 x = 200 # 全局变 ...

  10. 子div撑不开父div

    方法一:推荐 设置父div的overflow:hidden; 方法二: 父div结束前增加一个空div style=”clear:both;” .clear { clear:both; } <d ...