剑指offer——博文目录
2015-09-02 21:14
1326 查看
剑指offer_面试题3——数组的查找
剑指offer_面试题4——替换空格
JD_题目1525:子串逆序打印(2012年Google校园招聘笔试题目)
JD_题目1512——用两个栈实现队列
剑指offer_面试题42——左旋转字符串
剑指offer 面试题5——从头到尾打印链表
剑指offer面试题6——重建二叉树(递归)
剑指offer面试题7——用两个栈实现队列
剑指offer面试题8——旋转数组的最小数字
剑指offer_面试题9——跳台阶(非洛涅数列)
剑指offer面试题9——变态跳台阶
剑指offer面试题9——矩形框覆盖(递归改循环,斐波那契数列)
剑指offer面试题11——数值的整数次方
剑指offer面试题12——打印1到最大的n位数
剑指offer面试题13——在O(1)时间删除链表结点
剑指offer面试题14——调整数组顺序使奇数位于偶数前面
剑指offer面试题15——链表中倒数第k个结点
剑指offer面试题15——扩展1:求链表的中间结点
剑指offer面试题15——扩展2:判断一个单向链表是否形成环结构
剑指offer面试题16——反转链表
剑指offer面试题17——合并两个排序的链表
剑指offer面试题18——树的子结构(递归)
剑指offer面试题19——二叉树的镜像
剑指offer——面试题20:顺时针打印矩阵
剑指offer——面试题21:包含min函数的栈(泛型编程,一个巧妙的思维)
剑指offer——面试题22:栈的压入、弹出序列
剑指offer——面试题23:从上往下打印二叉树(树的递归创建,广度优先搜索,队列)
剑指offer——面试题24:二叉搜索树的后续遍历序列
剑指offer——面试题25:二叉树中和为某一值的路径(递归,深度优先搜索)
剑指offer——面试题26:复杂链表的复制
剑指offer——面试题27:二叉搜索树与双向链表
剑指offer——面试题28:字符串的排列(递归)
剑指offer——面试题29:数组中出现次数超过一半的数(快速排序的扩展,O(n))
剑指offer——面试题30:最小的k个数
剑指offer——面试题31:连续子数组的最大和(DP)
状态转移方程:sum[i]=max(a[i],sum[i-1]+a[i]),即每次一第i个元素结尾的最大和为以i-1结尾的最大和+a[i],a[i]
中的最大值。这样从前往后。就可以计算出最大值了。
剑指offer——面试题34:丑数
剑指offer——面试题35:第一个只出现一次的字符(哈希,遍历时将数存入哈希表,数组来构成哈希索引结构)
剑指offer——面试题36:数组中的逆序对(归并排序的扩展,先分组找里面的逆序,在合并查找逆序)
剑指offer——面试题37:两个链表的第一个公共结点(哈希)(栈,先都入栈,然后从尾部开始比较)
剑指offer——面试题38:数字在排序数组中出现的次数(利用二分查找来找第一次和最后一次的位置)
剑指offer——面试题39:二叉树的深度(递归二叉树,广度优先搜索)(还可以采用深度优先搜索的方法来做,即采用堆栈)
剑指offer——面试题39:扩展问题判断一个树是否是平衡二叉树(递归)(是上面一道题的扩展问题)
剑指offer——面试题40:数组中只出现一次的数字(位运算,两个相同的数异或结果为0)
剑指offer——面试题41:(一)和为s的两个数字(两个指针,一前一后,向中间在比较中遍历)
剑指offer——面试题:41(二)s的连续正数序列(两个指针,small和big,判断他们之间连续和与s之间的大小)
剑指offer——面试题42:(一)翻转单词顺序(两个指针,栈)
思路1:翻转两次,第一次翻转整个字符串,接着利用空格来确定其中每一个单词的开始和末尾,翻转每一个单词。
思路2:采用栈,将字符串后面依次压入栈中,接着当遇到结束或者空格时,就出栈。
剑指offer——面试题42:(二)字符串的坐旋转操作(将ab旋转,将cdefg旋转,接着将整个字符串旋转,就得到所求)
剑指offer——面试题43:n个骰子的点数(递归,循环)
思路1:递归,分成两组,第一组一个元素,后面一部分为一组,这样计算后面一组时又可以接着分,传入参数为当前和以及第几个。
思路2:循环,一个骰子一个骰子的往上加,用两个数组轮换着保存,而计算采用的是k个和k+1个筛子的各个和之间的关系。
剑指offer——面试题44:扑克牌的顺序
剑指offer——面试题47:圆圈中最后剩下的数字(约瑟夫环问题,可以采用环链表。找规律,找出递推式,可以用递推和递归)
f(n,m)=f(n-1,m)+m%n—————约瑟夫环规律
剑指offer——面试题:47不用加减乘除做加法(采用位运算,先将两个数位异或运算,得到没有进位的相加数。接着将两个数位
与运算后左移一位。得到两个数的进位。若是这个进位不为0则继续递归下去。)
剑指offer_面试题4——替换空格
JD_题目1525:子串逆序打印(2012年Google校园招聘笔试题目)
JD_题目1512——用两个栈实现队列
剑指offer_面试题42——左旋转字符串
剑指offer 面试题5——从头到尾打印链表
剑指offer面试题6——重建二叉树(递归)
剑指offer面试题7——用两个栈实现队列
剑指offer面试题8——旋转数组的最小数字
剑指offer_面试题9——跳台阶(非洛涅数列)
剑指offer面试题9——变态跳台阶
剑指offer面试题9——矩形框覆盖(递归改循环,斐波那契数列)
剑指offer面试题11——数值的整数次方
剑指offer面试题12——打印1到最大的n位数
剑指offer面试题13——在O(1)时间删除链表结点
剑指offer面试题14——调整数组顺序使奇数位于偶数前面
剑指offer面试题15——链表中倒数第k个结点
剑指offer面试题15——扩展1:求链表的中间结点
剑指offer面试题15——扩展2:判断一个单向链表是否形成环结构
剑指offer面试题16——反转链表
剑指offer面试题17——合并两个排序的链表
剑指offer面试题18——树的子结构(递归)
剑指offer面试题19——二叉树的镜像
剑指offer——面试题20:顺时针打印矩阵
剑指offer——面试题21:包含min函数的栈(泛型编程,一个巧妙的思维)
剑指offer——面试题22:栈的压入、弹出序列
剑指offer——面试题23:从上往下打印二叉树(树的递归创建,广度优先搜索,队列)
剑指offer——面试题24:二叉搜索树的后续遍历序列
剑指offer——面试题25:二叉树中和为某一值的路径(递归,深度优先搜索)
剑指offer——面试题26:复杂链表的复制
剑指offer——面试题27:二叉搜索树与双向链表
剑指offer——面试题28:字符串的排列(递归)
剑指offer——面试题29:数组中出现次数超过一半的数(快速排序的扩展,O(n))
剑指offer——面试题30:最小的k个数
剑指offer——面试题31:连续子数组的最大和(DP)
状态转移方程:sum[i]=max(a[i],sum[i-1]+a[i]),即每次一第i个元素结尾的最大和为以i-1结尾的最大和+a[i],a[i]
中的最大值。这样从前往后。就可以计算出最大值了。
剑指offer——面试题34:丑数
剑指offer——面试题35:第一个只出现一次的字符(哈希,遍历时将数存入哈希表,数组来构成哈希索引结构)
剑指offer——面试题36:数组中的逆序对(归并排序的扩展,先分组找里面的逆序,在合并查找逆序)
剑指offer——面试题37:两个链表的第一个公共结点(哈希)(栈,先都入栈,然后从尾部开始比较)
剑指offer——面试题38:数字在排序数组中出现的次数(利用二分查找来找第一次和最后一次的位置)
剑指offer——面试题39:二叉树的深度(递归二叉树,广度优先搜索)(还可以采用深度优先搜索的方法来做,即采用堆栈)
剑指offer——面试题39:扩展问题判断一个树是否是平衡二叉树(递归)(是上面一道题的扩展问题)
剑指offer——面试题40:数组中只出现一次的数字(位运算,两个相同的数异或结果为0)
剑指offer——面试题41:(一)和为s的两个数字(两个指针,一前一后,向中间在比较中遍历)
剑指offer——面试题:41(二)s的连续正数序列(两个指针,small和big,判断他们之间连续和与s之间的大小)
剑指offer——面试题42:(一)翻转单词顺序(两个指针,栈)
思路1:翻转两次,第一次翻转整个字符串,接着利用空格来确定其中每一个单词的开始和末尾,翻转每一个单词。
思路2:采用栈,将字符串后面依次压入栈中,接着当遇到结束或者空格时,就出栈。
剑指offer——面试题42:(二)字符串的坐旋转操作(将ab旋转,将cdefg旋转,接着将整个字符串旋转,就得到所求)
剑指offer——面试题43:n个骰子的点数(递归,循环)
思路1:递归,分成两组,第一组一个元素,后面一部分为一组,这样计算后面一组时又可以接着分,传入参数为当前和以及第几个。
思路2:循环,一个骰子一个骰子的往上加,用两个数组轮换着保存,而计算采用的是k个和k+1个筛子的各个和之间的关系。
剑指offer——面试题44:扑克牌的顺序
剑指offer——面试题47:圆圈中最后剩下的数字(约瑟夫环问题,可以采用环链表。找规律,找出递推式,可以用递推和递归)
f(n,m)=f(n-1,m)+m%n—————约瑟夫环规律
剑指offer——面试题:47不用加减乘除做加法(采用位运算,先将两个数位异或运算,得到没有进位的相加数。接着将两个数位
与运算后左移一位。得到两个数的进位。若是这个进位不为0则继续递归下去。)
相关文章推荐
- Html和CSS的关系
- JS 案例-添加节点
- JS-进阶-JS DOM常用的节点操作
- jquery API
- JavaScript中单引号和双引号的区别
- JSP标签库
- 关于JavaScript中没有块级作用域的理解
- liferay6.2弹出层,弹出窗
- JQuery总结
- JS使用DOM对元素进行添加和修改
- JavaScript简介
- $.getJSON有参数长度限制
- 常见浏览器兼容问题、盒模型2种模式以及css hack知识讲解
- js注册实现
- XML 和 JSON 解析数据
- JS正则表达式的简单使用
- 读取JSON值
- 【JS/读书随笔】JavaScript编程精解/Eloquent JavaScript:Chapter 2 函数
- WEB入门——HTML
- [React] React Fundamentals: with-addons - ReactLink