《剑指Offer》50道算法面试题 - C++版,本来一开始想用Java来写,不过看看了,JDK里封装了很多算法,用Java写就没意思了,于是用选择了C++,顺便也学习一下C++。
关于刷题方法,这里要说几句:因为本人也不擅长刷题,属于跳跃性思维的那种。开始刷了十几道就放弃了,最后找到了一种方法,给大家分享出来:
好的,就到这里,大概需要5遍以上吧,这样多刷几遍题可以增强记忆~
面试题3:一个从左到右递增、从上到下递增的二维数组中判断一个整数是否存在
面试题4:把字符串的空格替换为“%20”
面试题5:从尾到头打印链表
面试题6:通过前序遍历和中序遍历重建二叉树
面试题7:用两个栈实现队列
面试题8:旋转数组的最小数字
面试题9:斐波那契数列
面试题10:二进制中1的个数
面试题11:数值的整数次方
面试题12:打印从1到最大的n位数
面试题13:在O(1)的时间删除链表结点
面试题14:调整数组顺序使奇数位于偶数前面
面试题15:链表中倒数第k个结点
面试题16:反转链表
面试题17:合并两个排序的链表
面试题18:判断二叉树B是否为A的子结构
面试题19:二叉树的镜像
面试题20:顺时针打印矩阵
面试题21:包含min函数的栈
面试题22:已知栈的压入序列,判断是否为弹出序列
面试题23:从上往下打印二叉树
面试题24:判断数组是否符合二叉搜索树的后序遍历序列
面试题25:二叉树中和为某一值得路径
面试题26:复杂链表的复制
面试题27:二叉搜索树转换为排序的双向链表
面试题28:打印字符串中字符的所有排列
面试题29:数组中出现次数超过一半的数字
面试题30:从n个整数中找出最小的k个数
面试题31:连续子数组的最大和
面试题32:从1到n的整数中1出现的次数
面试题33:把数组排成最小数
面试题34:求第n个丑数
面试题35:第一个只出现一次的字符
面试题36:数组中的逆序对
面试题37:两个链表第一个公共结点
面试题38:数字在排序数组中出现的次数
面试题39.1:二叉树的深度
面试题39.2:判断二叉树是否为二叉平衡树
面试题40:数组中只出现一次的数字(除两个数字外,其余都出现两次)
面试题41.1:递增排序数组中查找和为s的两个数
面试题41.2:打印出和为s的连续正数序列
面试题42.1:翻转单词顺序,但单词中字符顺序不变
面试题42.2:实现字符串左旋转功能
面试题43:打印出n个骰子点数s所有可能出现的概率
面试题44:随机抽5张牌是不是连续的(大小王可看成任意数字)
面试题45:圆圈中最后剩下的数字
面试题46:不使用乘除、if、while等求1+2+……+n
面试题47:不用加减乘除做加法
面试题48:不能被继承的类
面试题49:把字符串转换为整数
面试题50:树中两个结点的最低公共祖先
最后,祝大家刷题愉快~~~
作 者:ChanghuiN
原文链接:https://cloud.tencent.com/developer/article/1333301
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。