自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 php-fpm工作原理

php-fpm工作原理php-fpm 、php fast-cgi 和php-cgi的区别与联系PHP的CGI实现了FastCGI协议,是一个TCP或UDP协议的服务器接收来自Web服务器的请求,当启动时创建TCP/UDP协议的服务器的socket监听,并接收相关请求进行处理。随后进入PHP的生命周期:模块初始化、sapi初始化、处理PHP请求、模块关闭、sapi关闭等。以TCP为例,在...

2019-08-07 01:06:59 1399

原创 多态和虚函数

多态:多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。--百度百科C++中,实现多态有以下方法:虚函数,抽象类,覆盖,...

2018-09-18 15:20:16 184

原创 C++优先队列的重载(最小堆、最大堆)

C++优先队列默认是最大堆,所以如果我们要用到最小堆,就需要进行重载来使用。priority_queue的头文件是<queue>.1.less和greater,不利用struct进行重载。priority_queue<int, vector<int>, less<int>>s;//less表示按照递减(从大到小)的顺序插入元素prio...

2018-09-06 14:21:55 3944

原创 今日头条一面凉经

视频面,武汉今日头条后台开发岗,自身写C++的,招的是java岗,尴尬。问题:先做了一个题目,股票买卖最大利润的,leetcode原题。然后因为语言差别,所以就问数据结构,主要就问了map,hashmap,hash底层自己怎么实现,hash取模怎么实现的,怎么对hashmap进行查找,stack底层是什么,怎么设计,为什么,然后问了一点操作系统的基础,进程线程还有通信之类的。...

2018-09-03 15:36:53 1130

原创 金山WPS--C++面经

武汉金山,一共两面,两面都是问C++基础知识。一面:手写单例模式;struct和class的区别;如何删除vector的指定元素;四种智能指针;C++的封装继承和多态三种特性;多态如何实现的;一个类会默认生成的6个函数;冒泡排序;一个大文件,里面有很多种颜色,找出出现最多的10种颜色;vector,list,map的底层原理;手写重载拷贝构造函数;拷贝构造函数什么时候需要重载;多线程的同步和互...

2018-08-29 17:54:54 1334

原创 top-k,数组最小(大)的k个数

#include<iostream>#include<vector>using namespace std;void adjustHeap(int arr[], int i, int n)//3.调整大顶堆(仅是调整过程,建立在大顶堆已构建的基础上){ int j = i * 2 + 1;//子节点 while (j<n) { if (j + ...

2018-08-20 15:35:09 193

原创 字符串(数组)循环移位

前几天去腾讯面试,出的一道手写代码题目。假设有一个数组,[1,2,3,4,5],循环右移两位,变化为[4,5,1,2,3],当时写出来的代码是重新申请了一个数组,所以面试官又让我减少空间复杂度,代码如下:字符串翻转:void reverse(string &s,int begin,int end)//翻转数组{ while (begin < end) { ch...

2018-08-07 16:19:12 729

原创 大数相乘

#include<iostream>#include<string>using namespace std;string multi(string a, string b){ int len1 = a.size(); int len2 = b.size(); //int t[MAX]; int len = len1 + len2 + 1; int *t ...

2018-08-07 14:44:37 116

原创 排序算法--堆排序(C++)

#include<iostream>#include<vector>using namespace std;void adjustHeap(vector<int> &arr, int i, int n)//3.调整大顶堆(仅是调整过程,建立在大顶堆已构建的基础上){ int j = i * 2 + 1;//子节点 while (j<...

2018-07-18 11:02:07 119

原创 贪心--无重叠区间--C++

给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: [ [1,2], [1,...

2018-07-17 16:13:24 891

原创 大端法,小端法,union

大端法与小端法计算机存储数据都是从低地址到高地址,如0x100到0x103存储,而大端法和小端法的区别就是存储数据时是取数据的低位存放在高地址还是高位存放在高地址。大端法:数据低位存放高地址。小端法:数据高位存放高地址。举个例子,现有一个int a,地址为0x12 34 56 78,从左向右是高位到低位对大端法而言,存放顺序是,12 34 56 78;对小端法而言,存放顺序是78 56 34 12...

2018-05-27 22:44:39 220

原创 排序算法--插入排序(C++)

插入排序一般用直接插入法,时间复杂度:最好情况O(n),平均情况和最差情况复杂度为O(n^2)。基本方法是:序列分为有序列和无序列,然后每次从无序列取出一个元素,与有序列进行比较,插入进有序列,直至无序列为空。假设序列为[9,8,7,6,5,4,3,2,1]则产生有序列[9],无序列为[8,7,6,5,4,3,2,1];然后无序列取出8,插入有序列,得到[8,9],有序列进行数组的移动;重复这个过...

2018-05-09 20:19:00 146

原创 排序算法-归并排序(C++、链表)

归并排序采用分而治之的方法,把n个元素按照非递减顺序排列。常用结构是:若n为1,则算法终止;否则,将序列划分为k个子序列(int k>=2)。先对每一个子序列进行排序,然后将有序子序列归并为一个序列。归并排序的时间复杂度是Ω(nlogn),平均复杂度和最坏复杂度均为Ω(nlogn)。假设现在初始段为[8,4,5,6,2,1,7,3]先分:[8,4,5,6],[2,1,7,3]再分:[8,4]...

2018-05-05 21:24:32 546

原创 排序算法--快速排序(C++)

  快速排序是冒泡排序的一种改进,属于交换排序,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。    C++中可以直接调用函数qsort()对数组进行排序。    void qsort(void *base, int nelem, int wid...

2018-03-30 20:47:08 147

原创 阿里C/C++一面(2)

在上次阿里二面跪了之后,阿里又打了一次电话给我换了个部门重新一面,哭,感觉一面还是不错的:上来先问项目,介绍自己的三个项目,分别说了流程,做法,中间问了我以后想做什么,还是和上次一样想确定我的方向,我坚定的说想做工程,做C++,这次没犯错。后面开始问基础部分了,这次比上次一面难多了,问问题一个接一个,o(╥﹏╥)o。C++部分:虚函数是什么,怎么构造实现的;栈和堆的区别和分配问题,生命周期问题;n...

2018-03-30 13:39:02 582

原创 数据流中的中位数:堆排序

题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。如果数据在容器中已经排序,那么中位数可以由P1和P2指向的数得到,如果容器中数据的数目是奇数,那么P1和P2指向同一个数据。如下图所示:如图整个数据容器分隔成两个部分,位于容器左边部分的数据比右边的数据小,P...

2018-03-29 20:53:37 601

原创 STL--heap

heap即堆,头文件为#include<algorithm>,包括max-heap和min-heap,其中,max-heap在缺省的情况下是C++底层优先情况。本质是一颗以vector来实现的完全二叉树。最大堆的父节点大于等于任意子节点,最小堆小于任意子节点。如下图所示就是一颗完全的最大堆二叉树:heap的算法:1.make_heap((First,_Last,_Comp) //建立堆...

2018-03-29 20:46:42 174

原创 阿里C++研发电话面试总结

一共进行了两面,二面有点心痛。一面:上来英语自我介绍,然后问了一下项目,接着开始问C++的基础,像多态;函数重载和重写;C语言能不能重载;栈变量,全局变量,静态变量的区别,内存中的位置;虚拟地址、逻辑地址定义和区别;然后问进程与线程的区别,三次握手四次挥手,中间问了select和epoll,没有回答出来,最后给了我一个链接,在线写两段代码,一个二叉树的前序非递归遍历,一个链表的翻转。二面:上来问我...

2018-03-29 17:11:12 3219 1

原创 如何退出while(cin>>a)

1.输入非该类型的字符2.判断输入是否为\n;while (cin >> str) { t.push_back(str); i++; if (cin.get() == '\n') //关键在这里,\n不能用双引号。。。 { break; } ...

2018-03-28 19:44:00 2159

原创 凸优化学习

”凸优化“ 是指一种比较特殊的优化,是指求取最小值的目标函数为凸函数的一类优化问题。凸优化就是:1、在最小化(最大化)的要求下,2、目标函数是一个凸函数(凹函数),3、同时约束条件所形成的可行域集合是一个凸集。其中,目标函数为凸函数且定义域为凸集的优化问题称为无约束凸优化问题。而目标函数和不等式约束函数均为凸函数,等式约束函数为仿射函数,并且定义域为凸集的优化问题为约束优化问题。一个集合  称为凸...

2018-03-28 16:10:30 827

原创 网易深度学习视觉笔试总结

总共18个选择题,1个编程题,6个简答题重点是选择题和简答题。选择题主要考了一些基础,二叉树,散表链接,SVM的理论知识,哈夫曼树,边缘检测算子。简答题重点是FRCNN。总结:对SVM理论不熟,边缘检测算子不熟,FRCNN不熟,需要做一些总结和学习。...

2018-03-27 23:32:12 1430

原创 二叉树的遍历

前序递归遍历: void preOrder1(BinTree *root) { if(root!=NULL) { cout<<root->data<<" "; preOrder1(root->lchild); preOrder1(root->rchild); } ...

2018-03-27 15:10:46 140

原创 约瑟夫环递归推导

约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后结果加1就是要求的解。约瑟夫问题递归公式推导过程:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人 继续从0开...

2018-03-25 21:38:52 558

原创 刷题小知识点

二维数组的指针写法:#include <iostream>using namespace std;int main(){ int a[3][4] = { 1,2,3,4,5,6,7,8,9,0,10,12 }; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) cout << a[i][j]...

2018-03-23 22:10:18 121

原创 python学习记录

range(1,5)  <<<[0,1,2,3,4]  返回的是数np.arrange(1,5) <<<([0,1,2,3,4)])是list>>> a = np.arange(6).reshape((3, 2))>>> aarray([[0, 1], [2, 3], [4, 5]])resha...

2018-03-23 22:10:07 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除