程序员面试资源大收集(转)

资源一:《crack the code interview》——谷歌资深技术面试官经典之作

本书的中文目录如下,大部分内容由Hawstein君原创翻译,部分缺失的由快课网Jay13补充。

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.1 解释术语:虚拟内存、缺页中断、抖动

16.5 写程序判断一台机器是大端序还是小端序

16.10 写一个名为my2DAlloc的函数,用它开辟一个二维数组

17.1 解释一下,在你往浏览器中输入一个URL后都发生了什么,要尽可能详细

17.2 介绍常用路由协议。例如:BGP,OSPF,RIP

17.4 网络/子网掩码是什么?网络路由是什么?

17.3 比较IPv4和IPv6协议

17.5 TCP和UDP之间有什么区别?

进程与线程的一个简单解释

18.1 线程和进程的区别是什么?

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 给出两个单词,找到它们的最短距离

资源二:《程序员编程艺术:面试和算法心得》

CSDN知名博主周磊的作品,真的是精益求精,不可多得的一本好书。纸质版的据说10月面市,期待。以下为全书的电子版目录。

第一部分 数据结构

第二部分 算法心得

第三部分 综合演练

资源三:一些其他的基础知识

快课网汇总了一些常用的面试笔试题,写成两篇关于操作系统和计算机网络的博文如下:

程序员的自我修养(1)——操作系统篇

程序员的自我修养(2)——计算机网络

==============================OVER=================================

本文链接:http://www.cricode.com/3282.html

 

时间: 2024-09-18 16:16:24

程序员面试资源大收集(转)的相关文章

[程序员面试金典]1002.下一个较大元素

题目描述 现在我们有一个int数组,请你找出数组中每个元素的下一个比它大的元素. 给定一个int数组A及数组的大小n,请返回一个int数组,代表每个元素比他大的下一个元素,若不存在则为-1.保证数组中元素均为正整数. 测试样例: [11,13,10,5,12,21,3],7 返回:[13,21,12,12,21,-1,-1] 思路 从后向前维护一个递减栈. 最右边的那个值肯定没有最大值,所以肯定是-1.初始栈为-1. 从后向前计算: (1)如果当前元素大于栈顶元素,则栈顶元素退出,如果还是大于栈

Java程序员面试失败的5大原因

下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容. #1 说得太少 尤其是那些开放式的问题,如"请介绍下你自己"或"请讲一下你曾经解决过的复杂问题".面试官会通过你对这些技术和非技术问题的回答来评估你的激情.他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力. 所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊.如果你不能很好地说明你的经

草根狂欢:程序员对《大数据时代》感悟

文章讲的是草根狂欢:程序员对<大数据时代>感悟,2012年被称作中国的大数据元年,有两本书功不可没.前有涂子沛的<大数据>(从美国政府的数据信仰.政策和实践娓娓道来,让中国政坛和知识精英接受了一次思维洗礼),后有舍恩伯格的<大数据时代>(此书是系统论述大数据理念的奠基之作).如果说前者着力于启蒙--大数据可以做什么,那么后者则注重解惑--大数据该怎么做. 大数据的引爆点在2011年,对大数据的认知也随即经历了一个拨云见雾的过程,先是体量(Volume)大,到类型杂(Va

Java程序员面试中的多线程问题总结_java

很多核心 Java 面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的.这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到. 0.Java 中多线程同步是什么? 在多线程程序下,同步能控制对共享资源的访问.如果没有同步,当一个 Java 线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致程序出现错误的结果. 1.解释实现多线程的几种方法?

优秀程序员的7大高效习惯,你&quot;中枪&quot;了吗?

Facebook首席执行官马克·扎克伯格(Mark Zuckerberg)有一个"怪癖":几乎每天都穿同样的衣服来上班.因为他觉得这样可以节省很多时间和资源,"我每天的工作为超过十亿人而服务,如果把精力全部浪费在穿衣打扮上,我觉得我的工作没有任何意义." 每个成功者的身上都有或多或少的东西值得我们学习,以下权威机构调查的高效程序员的7大习惯,你占了几条? 一.积极主动 生活中许多事情都是不可控的.你可能正在为签证问题失去一个出国深造的机会而烦恼;你的老板是个暴脾气,

程序员面试什么最重要?

程序员面试一直是社区乐于讨论的热门话题.我自己从06年实习以来,先后经历了4家软件公司,全部是外企,其中有世界500强的通信企业,有从事期权期货交易的欧洲中等规模的金融公司,也有为大型汽车制造商开发Android智能汽车的新兴公司.跨入IT行业以来,我在求职过程中经历过多次面试,最近两年也有过多次面试别人的经验.我感觉现在到了对这个问题发表自己看法的时候,这篇文章是我站在面试官角度对于程序员面试问题的一个阶段性反思和经验总结. 目标 相信和不少朋友一样,有了几年工作经验成为Senior后就开始了

《.NET程序员面试秘笈》---- 面试题11 举例说明简单工厂模式的作用

面试题11 举例说明简单工厂模式的作用 .NET程序员面试秘笈 [考点]工厂模式的理解,工厂模式在实际应用中的编写. [出现频率] [解答] 在软件系统中,经常面临着"一系列相互依赖的对象"的创建工作:同时由于需求的变化,往往存在着更多系列对象的创建工作.为了绕过常规对象的创建方法(new运算符创建实例),工厂模式提供一种"封装机制"来减少使用程序和这种"多系列具体对象创建工作"的耦合性. 说明: 这里的程序指客户程序之类的使用者. 简单工厂模式

应届生-程序员面试,基本功重不重要(算法和数据结构)?

问题描述 程序员面试,基本功重不重要(算法和数据结构)? 无论是php还是移动应用开发等等,基本功在面试中占多大比重?面试该注意些什么? 解决方案 算法,数据结构是基础,有了基础,就能反映你的基本能力 不同开发方向,可能对这些要求高低不一样.比如php,移动开发等,应该这方面要求不会那么多,更侧重你有没有i相关经验 解决方案二: 基础工需要看你面试什么,一般语言类的会重视基础知识,应用类的会重视开发经验.面试应该注意态度要认真. 解决方案三: 基础工需要看你面试什么,一般语言类的会重视基础知识,

《Java程序员面试秘笈》—— 面试题11 使用jar命令

面试题11 使用jar命令 Java程序员面试秘笈 请使用jar命令,将test文件夹压缩成.jar文件,并简述其压缩包的结构. 考点:对于Java程序员来说,更多情况下是使用的集成Java开发工具,例如JBuilder.Eclipse等,而对于最基本的Java编译和常见的命令行工具往往都不熟悉.这个面试题主要考察求职者对于Java命令行基本工具的使用,从而了解求职者对Java编程的熟悉程度. 出现频率: [面试题解析]熟练的Java开发者应该掌握常用的Java命令行工具.求职者应该熟练掌握ja