 
        结盟众多企业“教练”, 共同设计、开发及提供人才培养解决方案,通过新颖多样的学习方式,针对性的定制化内容,助力企业全面提升竞争优势。
包建强
3.5天
6000天
一、 简介
本课程是基于数据结构来设计的,搜罗了各大公司面试过程中经常被问到的300多个算法题目,从中遴选出70道经典题目,分为单链表、数组、二叉树、栈、数字、逻辑推理等多个类别。
本课程将培训学员的逻辑思维能力,学以致用,在实战中编写出性能更好、逻辑更严谨的程序。
本课程适用于1-2年开发经验的程序员,对设计模式和算法有一些了解。
| 主题 | 内容 | 
|---|---|
| 第1天 上午 单链表 | 	单链表的定义  单链表反转  倒数第四个元素  中间元素  删除无头单链表的一个节点  合并两个不交叉的有序链表  交换单链表中的任意两个元素  判断单链表是否有环  判断两个单链表是否相交,是则给出交点  用链表模拟大整数的加法运算  单链表排序  删除单链表中重复的元素 | 
| 第1天 下午 栈和队列 | 	栈和队列的定义  设计含有min函数的栈,要去算法复杂度为o(1)  用两个栈实现队列  用两个队列实现栈  判断栈的push、pop序列是否一致  递归反转一个栈,要求空间复杂度o(1)  如何用一个数组实现两个栈  如何用一个数组实现三个栈 | 
| 第2天 上午 二叉树 | 	二叉树的定义  三种周游方式  从顶部逐层打印二叉树的节点数据  如果判断一棵树是否为平衡二叉树  找出二叉树上任意两个节点的最近共同父结点  如何不用递归实现二叉树的前序/后序/中序遍历?  在二叉树中找出和为某一值的所有路径  把一个有序整数数组放到二叉树中?  判断整数序列是不是二叉搜索树的后序遍历结果  求二叉树的镜像  把二叉搜索树转变成排序的双向链表 | 
| 第2天 下午 数组 | 	查找数组中的唯一的重复元素(2)  删除数组中的唯一的重复元素(14)  删除有序数组中的重复元素,空间复杂度O(26)  1到1000存放在1001个元素的数组中,如何找出其中的一个重复数字(6)  找出数组中只出现了奇数次的1个数字,其它元素都成对出现(7)  查找数组的最大最小值(3)  长度为n的数组,存放了0到n范围内的整数,如何判断其中是否有重复元素,要求空间复杂度0(1)(8)  数组的循环右移(13)  “最大和”连续子序列(20)  调整数组顺序使奇数位于偶数前面(28)  判断有序数组中是否存在两个唯一的元素(45) | 
| 第3天 上午 数字 | 	按位反转数字(1234=)4321)  求从1加到n  用加法实现减法  把字符串转换成蒸熟  Fibnacci数列的3种算法  整数分割  大数的模计算  Excel的数字转字母  根据(1,5)随机数生成器,生成(1,7)随机数  计算质数、完全数、水仙花数、快乐数、回文数  删除100位数字后的最大数  找出2n个数字中重复n次出现的数字 | 
| 第3天 下午 杂题 | 	扑克牌洗牌算法  判断一个点是否在三角形内  IntStr函数的实现  写一个检查字符串是否是整数的函数,如果是则返回这个整数。  递归反转一个栈  栈的排序  八皇后问题  8x8的棋盘一共有多少长方形和正方形  拈 | 
| 第4天 上午 逻辑推理 | 	给你一个打乱的魔法,如何在第二天把它调整好  一根金条付薪水  寻找四个药丸罐子中某个被污染的药丸罐  大象背香蕉问题  谷歌赛马  九个点画十条直线,每条直线至少有三个交点  烧绳子算时间  高楼扔鸡蛋  海盗分金子  有7克、2克砝码各一个,天平一只,如何只用天平称三次将140克的盐分成50、90克各一份 | 
