
【面试相关】
以记录常见面试题为主
重庆李四
追求卓越,过完一生
展开
-
输入一个字符串,输出该字符串中字符的所有组合。
输入一个字符串,输出该字符串中字符的所有组合原创 2022-06-03 22:08:38 · 1218 阅读 · 1 评论 -
C++面试题-青蛙跳台阶的2种解法
文章目录前言实现代码结果验证前言分享一道算法面试题。题目描述如下:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?当然各种编程语言都是可以实现的。这里我们用C++语法去完成。这道题难度属于中等偏下,考验面试这的基本而已。考查面试者有没有递归思想,如果会递归写法,考官也会继续问有没有更好的解法。思路如下:/*题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:先找规律,n级台阶 :1 2 3 4原创 2020-12-09 20:31:46 · 1522 阅读 · 0 评论 -
Effective C++ 读后感
文章目录前言读后感结语前言从开始学习Effective C++ 到今天为止 第一遍学习完,历时42天。为什么说是第一遍学习完呢?因为后面肯定还有第二遍第三遍…复习与巩固。**谈谈为啥要学习这本书呢?**其实笔者很久之前都听说过这本书的大名,早早的都下载好了,这本书的pdf一直被尘封在我的笔记本上的Book目录。源于之前在北京某互联网教育公司的一次面试,问了很多问题 来源这本书,笔者没准备当然被虐的很惨。所以笔者当然要把这本书拿下。学习完这本书,你应该会对C++编程有一个更深刻的认识,当然也不限于面试,也原创 2020-12-06 21:57:44 · 1185 阅读 · 1 评论 -
C/C++面试题—序列化二叉树
题目描述请实现两个函数,分别用来序列化和反序列化二叉树。题目思路在剑指offer中是采用的流的形式进行编写,这里将二叉树序列化为字符串,反序列化的时候将字符串反序列化为二叉树。序列化的时候用了 C++中现成的string数据结构,就不用担心空间容量的问题了。题目代码#include <iostream>#include <string>#in...原创 2018-06-10 10:36:19 · 1727 阅读 · 0 评论 -
C/C++面试题—使用STL两个队列实现一个栈
题目介绍使用STL中的两个队列实现一个栈,实现栈的top、pop、push、clear等操作。思路分析思路和使用2个栈实现一个队列是相通的,用一个队列queue1容器用来 压栈,出栈的时候判断queue1.size()是否大于1,大于1的话队尾元素是栈顶需要弹出,这时就用到了queue2,将queue1其他的元素倒腾到queue2中,queue1中剩下的那一个元素就是栈顶的元素了。...原创 2018-05-23 13:41:23 · 1710 阅读 · 2 评论 -
记一道面试题:STL两个栈实现一个队列。
面试题目STL两个栈实现一个队列。要求:只能使用栈的pop(),top()和push(),以及测试栈是否为空empty()四个操作. 来实现队列的clear(), push(),pop(),back(),front()等操作。思路解析用一个栈用作队列的容器,另一个栈用作临时容器,由于队列 具有先进先出的特性,而我们的栈 只有一端可以进出,那么我们在做出队,也就是 要将一个栈的栈底元素 出队,所以要...原创 2018-03-20 19:54:56 · 434 阅读 · 0 评论 -
C/C++面试题—合并两个排序的链表【递归和循环两种方式】
题目描述输入两个单调递增的链表,输出两个链表合成后的链表, 当然我们需要合成后的链表满足单调不减规则。解题思路这道题既可以采用递归的方式,也可以采用循环的方式。 2者的思路都是殊途同归的。 合并后的链表头结点指向值域较小的头结点,然后较小的链表往后移动继续和另外一个链表的头结点值域进行比较。 直到将其中一个链表链接完毕,再链接另外一个链表。解题代码...原创 2018-06-02 22:41:09 · 902 阅读 · 0 评论 -
C/C++面试题—链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。解题思路顺数第1个结点和顺数第k个结点 倒数第k个结点和倒数第1个结点 神马关系?顺数第k个结点指针走到倒数第1个结点时候,顺数第1个结点指针刚好走到倒数第k个结点!解题代码/*题目描述输入一个链表,输出该链表中倒数第k个结点。*/#include <iostream>#include "Li...原创 2018-06-02 22:28:32 · 520 阅读 · 0 评论 -
C/C++面试题—重建二叉树【前序 + 中序-> 重建二叉树 和 后序 + 中序 -> 重建二叉树】
题目介绍题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。题目来源于剑指offer,因为已经流传广泛,题目需要的是 前序 + 中序-&gt; 重建二叉树,面试官很有可能会改题的,所有这里同时给出 ...原创 2018-05-22 11:03:36 · 408 阅读 · 1 评论 -
C/C++面试题—机器人的运动范围【回溯法应用】
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?解题思路同样是回溯法的应用,不过这...原创 2018-05-25 14:50:23 · 563 阅读 · 0 评论 -
C/C++面试题—矩阵中的路径【回溯法应用】
题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串”bcced”的路径,但是矩阵中不包含”abcb”路径,因为字符串的第一个字符b...原创 2018-05-25 14:43:34 · 697 阅读 · 0 评论 -
C/C++面试题—旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路{3,4,5,1,2}为{1,2,3,4,5}的旋转,前半部分始终大于等于后半部分,符合部分...原创 2018-05-25 14:31:58 · 314 阅读 · 0 评论 -
C/C++面试题—实现MyString类
题目介绍C++岗位面试题:实现自定义MyString类,实现拷贝构造函数和 []、=、+、== 、!=、<< 、>> 运算符重载函数。 自定义MyString估计是C++岗位常考的题目吧,能够较好的验证面试者对C++基础知识掌握的是否牢固。值得每个C++程序员注意的时,如果参数有传递引用,一定要有非空验证,因为引用帮我们封装了指针,MyString *pStr = n...原创 2018-05-19 17:43:42 · 2039 阅读 · 0 评论