面试题
qingcunsuiyue
集美貌、智慧、才华于一身的女子。
展开
-
LeetCode5. 最长回文子串
【代码】LeetCode5. 最长回文子串。原创 2023-07-01 14:58:41 · 242 阅读 · 0 评论 -
腾讯云面试题-重复的字符串+设计测试用例
3)当子串长度为n时,s[i]位置s[i+n]位置的值应一致。python的all()函数:判定给定的迭代参数是否都为true。3、字符串长度为2,判断首尾字符是否相等,相等则为true。1)子串最大长度不能超过字符串的一半。2、字符串长度为1,则为true,是由子串构成的。2)子串个数是字符串的偶数倍。4、字符串长度大于2,则需要「枚举」子串。1、字符串长度为空,则返回false。原创 2023-05-12 19:47:14 · 631 阅读 · 0 评论 -
剑指offer-----使数组中所有奇数在前,所有偶数在后,并保持相对位置不变
题目:输入一个整数数组,实现一个函数调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数的相对位置不变。思路:这个题的解法有好多种,我在这里实现了两种解法。1.快速排序的思想。ps:关于快速排序的思想,我会在后面的博客中专门介绍各大排序。 int a[]={3,5,4,2,7,8,1,6}; int n原创 2016-11-18 14:58:23 · 3416 阅读 · 0 评论 -
第二讲:如何定义一个只能在堆上生成对象的类
程序在内存中的分配情况:1.BSS段:存放程序未初始化的全局变量和static变量。2.代码段:存放程序执行代码。3.Data段:它包括堆,栈,静态数据区。(1)静态数据区:存放程序已初始化的全局变量和static变量(2)堆:存放进程运行中被动态分配的内存段,换句话说,就是程序员自己分配的内 存,用malloc或new实现。原创 2016-11-11 13:39:13 · 615 阅读 · 0 评论 -
栈和队列面试题
1.实现一个栈,要求实现Push(入栈),Pop(出栈),Min(返回最小值得操作)的时间复杂度为 O(1)思路:用已有的栈来完成时间复杂度为O(1)的栈datastack 数据栈 push 2 3 1 4 pop 2 3 pop 2 minstack 辅助栈 2 2 1 1 2 2 2templateclass原创 2016-10-11 16:16:24 · 396 阅读 · 0 评论 -
【滴滴面试题】【Python】迭代器与生成器
什么是迭代器(1)迭代器是用来访问集合元素的一种方式。(2)迭代器对象从集合的第一个元素开始访问,直到结束,迭代器只会前进不会后退。(3)迭代器有2个基本方法:iter(),next()原创 2020-06-12 01:52:13 · 271 阅读 · 0 评论 -
【Nginx】Nginx的原理及应用
nginx是什么,一般都用于在那些场景下的呢?nginx是一个轻量级,高性能的http服务器/反向代理服务器,占用内存小,并发能力强。怎么作为http服务器使用:...原创 2020-03-29 21:24:16 · 139 阅读 · 0 评论 -
【头条面试题】【Redis】Redis的原理和使用
Redis原理:redis是高性能的key-value数据库; redis支持数据的持久化,即将内存中的数据存数在磁盘中,重启的时候再次加载进行使用; redis支持master-salve模式的数据备份; redis所有的操作都是原子性的,即要么成功执行要么不执行; redis支持丰富的特性,支持publish/subscribe、通知、key过期等等特性;Redis的高性能体现:...原创 2020-03-23 02:47:38 · 303 阅读 · 1 评论 -
【头条面试题】【网络协议】HTTP与HTTPS的区别
http与https的最本质的区别是:该协议被用于在web浏览器和服务器间传输信息; http全称是超文本传输协议,使用端口80; https全称是安全超文本传输协议,使用端口443,是在http协议的基础上加了SSL/TSL加密传输信息的协议;...原创 2020-03-22 23:34:57 · 209 阅读 · 0 评论 -
头条面试题(MYSQL——连表查询&having用法)
题目:部门表(员工姓名,部门名称,工资)department(personnel,name,salary)等级表(工资等级,等级下限,等级上限)grade(level,upper,lower)问题1:求平均工资大于5000的部门名称和部门的平均工资问题2:求每个员工名称,工资,工资等级select personnel, salary, level from de...原创 2020-03-07 20:18:55 · 1020 阅读 · 0 评论 -
百度面试题------将一个电分十进制的IP地址转换为一个32位的整数,要求一一对应
解题思路:IP地址通常是用点分十进制表示,但它其实是一个32位的二进制。10.2.3.5000001010.00000010.00000011.00000101每一个部分都是一个字节,8个bit位。int IpToInt(string s){ int ret=0; int num=0; for(int i=0;i<s.size();i++) { if(s[i]!='.原创 2017-09-22 12:24:18 · 2222 阅读 · 0 评论 -
58面试题-----用两个栈实现一个队列
题目:class Solution{public: void push(int node) { stack1.push(node); } int pop() { int ret=0; if(stack1.size()==1&&stack2.size()==0) stack1.pop();原创 2017-09-22 11:00:24 · 250 阅读 · 0 评论 -
小米面试题-----将二叉树打印成多行
题目:将处于同一层的打印成一行。方法1:定义一个嵌套的vector(vector>),把处于同一层的保存在一个vector中。class Solution {public: vector > Print(TreeNode* pRoot) { vector> v; //特别关键 if(pRoot==NULL)原创 2017-09-22 10:25:33 · 390 阅读 · 0 评论 -
去哪网笔试题---可以输入多组字符串,输入a-z代表0-25,例如.输入ab,输出1. ab=0*26^1+1*26^0
void test2(string& s){ int len=s.size(); int i=0; int j=len; double sum=0; for(i=0;i<len;++i) { sum+=(s[i]-'a')*pow(26.0,j-1); --j; } cout<<sum<<endl;}int main(){ vector v;原创 2017-04-04 23:30:48 · 1505 阅读 · 0 评论 -
输入一个满二叉树的深度和它的三个节点,求三个节点最小子树的,根节点
例如:输入深度为4,三个子节点分别为10,13,15,最小子树的根节点为12.我们可已根据树的遍历方式推测出这是一个中序遍历值为从1到2^k-1。我们可以用二分搜索技术来找最小子树的根节点。//基于二分搜索#include#includeint FindMin(int* arr,int left,int right){ int mid=((right-left)>>1)+le原创 2017-04-04 15:04:31 · 2102 阅读 · 0 评论 -
判断一颗二叉树是否为平衡树
平衡树是每一颗节点的左右子树高度差不超过1的。思路:只需要将右子树的高度减去左子树的高度的绝对值不超过2,就是一颗平衡树。代码:1.普通版本,时间复杂度为O(N^2)bool _IsBalance(Node* root) { if(root==NULL) return true; int LeftHeight=_Height(root->_left );原创 2016-10-25 21:47:53 · 316 阅读 · 0 评论 -
腾讯面试题----判断一个数是否存在(大数据方面)
具体题目要求:给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 思路:(1)用一个无符号整数表示一个无符号整数时,40亿个无符号整数要全部加载到内存,大概需要16G的内存。 (2)如果用一个字节表示一个数,大概需要4G内存。 (3)如果用一位表示一个数是否存在,大概需要500MB。原创 2016-11-08 20:10:39 · 3617 阅读 · 0 评论 -
重建二叉树
题目 :输入某二叉树的前序遍历和中序遍历结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果都不含重复的数字。思路:在二叉树的前序遍历序列中,第一个数字总是树的根节点的值。但在中序遍历中,根节点的值在序列的中间,左子树的节点再根节点的左边右子树的节点在树的右边。1.根据前序和中序的特点得到根节点为1的左右子树图:2.根节点1的左指针指向2的左右子树图:3.原创 2016-10-27 23:44:00 · 265 阅读 · 0 评论 -
剑指offer-----青蛙跳台阶问题(1)
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级,求该青蛙跳上一个n级台阶总共有多少种跳法。规律:当台阶为1级时,有一种跳法,当台阶为2级时,有两种跳法,当台阶为3级时,有三种跳法,当台阶为4级时,有种跳法五种跳法,可以总结为,f(1)=1,f(2)=2,f(3)=3=1+2,f(4)=5=2+3,f(5)=8=5+3,......f(n)=f(n-1)+f(n-2); 为什么会原创 2016-11-17 23:26:17 · 342 阅读 · 0 评论 -
面试题----统计水果出现次数最多的前三名(map的运用)
题目描述:某公司为了统计员工最喜爱水果的前三名,发了一份调查问卷,让员工填上自己喜爱的水果名,然后在统计。思路:在解题的过程中运用2次vector和一次map,第一个vector的目的,是为了把调查问卷的信息保存到容器中(即把水果的信息保存到vector中),map(底层为红黑树)的作用是为统计出一个水果名对应的数量,第二个vector的作用是为了排序,使水果数量从大到小排列,你肯定有疑惑,为原创 2016-11-15 21:14:51 · 454 阅读 · 0 评论 -
小米面试题------朋友圈问题
题目描述:假如已知有n个人和m对好友关系(存于数字r),如果两人是直接或间接好友(好友的好友的好友....),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。例如:n=5,m=3,r={{1,2},{2,3},{4,5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1,2,3,属于一个朋友圈,4,5属于另一个朋友圈。结果为2个朋友圈。解题思路:原创 2016-11-27 21:48:04 · 1052 阅读 · 0 评论 -
二叉树的相关面试题 <三>---------二叉树的镜像
题目:输入一个二叉树,输出它的镜像。解题思路:求树的镜像就是遍历树的同时交换非叶子节点的左右节点。前序遍历,当当前节点的左右子树节点不为空时,交换左右节点。原图为:镜像和原图对比图为:原创 2017-01-03 23:34:57 · 543 阅读 · 0 评论 -
二叉树相关的面试题<一>
1.判断B是否为A的子结构2.判断一颗二叉树是否为完全二叉树原创 2016-12-24 21:03:00 · 326 阅读 · 0 评论 -
设计一个类,只能生成该类的一个实例
只能生成一个实例的类是实现了Singleton(单例)模式的类型。解题思路:根据题目的要求,1.必须把构造函数设为私有函数,防止他人创建实例。2.在类中创建静态私有的实例,在需要时创建该实例,直到程序结束才销毁。3.提供一个静态的公有的函数用于创建/获取静态私有对象。在系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,原创 2017-01-05 23:34:49 · 4016 阅读 · 0 评论 -
二叉树的相关面试题<二>
1.求二叉树中最远的两个节点的2.求两个节点最近的公共祖先原创 2016-12-29 20:29:23 · 257 阅读 · 0 评论 -
二叉树的相关面试题<三>-----二叉树中和为某一的路径
题目:输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路劲。void PrintNodeEqualInt() { int num; cout<<"输入一个整数:"<<endl; cin>>num; int sum=0; queue q; _PrintNodeEqualInt(_root,num,sum,q); }void _PrintNodeE原创 2016-12-31 21:33:11 · 649 阅读 · 0 评论 -
去哪网的笔试题----动态输入二叉树前序遍历和中序遍历的结果,然后输出它的层次遍历结果
思路:要输出层次遍历的结果,必须先重建二叉树。我在以前的博客中有讲过怎么重建二叉树,层次遍历借助队列来完成。struct BinaryTreeNode{ int value; BinaryTreeNode* left; BinaryTreeNode* right;};//重建二叉树BinaryTreeNode* Construct(int* preorder,int* preor原创 2017-04-03 12:22:35 · 829 阅读 · 0 评论 -
将搜索二叉树转成有序的双向链表
二叉搜索树的性质:1. 每个节点都有一个作为搜索依据的关键码(key),所有节点的关键码互不相同, key值不可改。2. 左子树上所有节点的关键码(key)都小于根节点的关键码(key)。3. 右子树上所有节点的关键码(key)都大于根节点的关键码(key)。4. 左右子树都是二叉搜索树。思路:根据搜索二叉树的性质,我们可以得知,当中序遍历它是有序的。 因原创 2016-10-22 00:05:35 · 739 阅读 · 0 评论