剑指offer笔记
c++相关书籍
- 《Effective C++》
- 《C++ Primer》
- 《Inside C++ Object Model》
- 《The C++ Programming Language》
熟练掌握C++基础语法:运算符函数,常量引用等等
struct是public, class是private
题目整理
面试题03. 数组中重复的数字
1 | //solution 1 |
面试题04. 二维数组中的查找
1 | class Solution { |
面试题05. 替换空格
1 | class Solution { |
面试题06. 从尾到头打印链表
1 | /** |
面试题07. 重建二叉树
1 | /** |
面试题09. 用两个栈实现队列
1 | class CQueue { |
面试题10- I. 斐波那契数列
1 | class Solution { |
面试题10- II. 青蛙跳台阶问题
1 | class Solution { |
面试题11. 旋转数组的最小数字
1 | class Solution { |
面试题12. 矩阵中的路径
1 | class Solution { |
面试题13. 机器人的运动范围
1 | class Solution { |
面试题14- I. 剪绳子
1 | class Solution { |
面试题14- II. 剪绳子 II
1 | class Solution { |
面试题15. 二进制中1的个数
1 | class Solution { |
面试题16. 数值的整数次方
1 | class Solution { |
面试题17. 打印从1到最大的n位数
1 | class Solution { |
面试题18. 删除链表的节点
1 | /** |
面试题19. 正则表达式匹配
1 | class Solution { |
面试题20. 表示数值的字符串
1 |
面试题21. 调整数组顺序使奇数位于偶数前面
1 | class Solution { |
面试题22. 链表中倒数第k个节点
1 | /** |
面试题24. 反转链表
1 | /** |
面试题25. 合并两个排序的链表
1 | /** |
面试题26. 树的子结构
1 | /** |
面试题27. 二叉树的镜像
1 | /** |
面试题28. 对称的二叉树
1 | /** |
面试题29. 顺时针打印矩阵
1 | class Solution { |
面试题30. 包含min函数的栈
1 | class MinStack { |
面试题31. 栈的压入、弹出序列
1 | class Solution { |
面试题32 - I. 从上到下打印二叉树
1 | /** |
面试题32 - II. 从上到下打印二叉树 II
1 | /** |
面试题32 - III. 从上到下打印二叉树 III
1 | /** |
面试题33. 二叉搜索树的后序遍历序列
1 | class Solution { |
面试题34. 二叉树中和为某一值的路径
1 | /** |
面试题35. 复杂链表的复制
1 | /* |
面试题36. 二叉搜索树与双向链表
1 | /* |
面试题37. 序列化二叉树
1 | /** |
面试题38. 字符串的排列
1 | class Solution { |
面试题39. 数组中出现次数超过一半的数字
1 | //solution1 |
面试题40. 最小的k个数
1 | class Solution { |
面试题41. 数据流中的中位数
1 | class MedianFinder { |
面试题42. 连续子数组的最大和
1 | class Solution { |
面试题43. 1~n整数中1出现的次数
1 | class Solution { |
面试题44. 数字序列中某一位的数字
1 | class Solution { |
面试题45. 把数组排成最小的数
1 | class Solution { |
面试题46. 把数字翻译成字符串
1 | class Solution { |
面试题47. 礼物的最大价值
1 | class Solution { |
面试题48. 最长不含重复字符的子字符串
1 | class Solution { |
面试题49. 丑数
1 | class Solution { |
面试题50. 第一个只出现一次的字符
1 | class Solution { |
面试题51. 数组中的逆序对
1 | class Solution { |
面试题52. 两个链表的第一个公共节点
1 | /** |
面试题53 - I. 在排序数组中查找数字 I
1 | class Solution { |
面试题53 - II. 0~n-1中缺失的数字
1 | class Solution { |
面试题54. 二叉搜索树的第k大节点
1 | /** |
面试题55 - I. 二叉树的深度
1 | /** |
面试题55 - II. 平衡二叉树
1 | /** |
面试题56 - I. 数组中数字出现的次数
1 | class Solution { |
面试题56 - II. 数组中数字出现的次数 II
1 | class Solution { |
面试题57. 和为s的两个数字
1 | class Solution { |
面试题57 - II. 和为s的连续正数序列
1 | class Solution { |
面试题58 - I. 翻转单词顺序
1 | class Solution { |
面试题58 - II. 左旋转字符串
1 | class Solution { |
面试题59 - I. 滑动窗口的最大值
1 | class Solution { |
面试题59 - II. 队列的最大值
1 | class MaxQueue { |
面试题60. n个骰子的点数
面试题61. 扑克牌中的顺子
1 | class Solution { |
面试题62. 圆圈中最后剩下的数字
1 | class Solution { |
面试题63. 股票的最大利润
1 | class Solution { |
面试题64. 求1+2+…+n
1 | class Solution { |
面试题65. 不用加减乘除做加法
1 | class Solution { |
面试题66. 构建乘积数组
1 | class Solution { |
面试题67. 把字符串转换成整数
面试题68 - I. 二叉搜索树的最近公共祖先
1 | /** |
面试题68 - II. 二叉树的最近公共祖先
1 | /** |