自定义博客皮肤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)
  • 收藏
  • 关注

原创 面试宝典:类和数据抽象、面向对象编程与泛型编程

1、c++中类成员的访问权限:c++通过public、protected、private三个关键字来控制成员变量和成员函数的访问权限,分别表示共有、受保护、私有,在类的内部三种类型都可以相互访问,在类外部,只能通过对象访问成员,(静态的可以用类名访问)并通过对象只能访问public属性的成员,不能访问private、protected属性的成员。2、c++中struct和class的区别:在...

2019-09-02 17:32:05 161

原创 面试宝典:容器和算法

1、说一下map和set有什么区别,分别是怎么实现的:map和set都是c++的关联容器,底层实现都是红黑树;区别在于:map中的元素是(关键字–值)对,关键词起到索引的作用,值表示与索引相关联的数据;set是关键字的简单集合,set中每个元素只包含一个关键字;set的迭代器是const的,map允许修改value不允许修改key,因为map和set是根据关键字排序保证其有序性;map支持...

2019-08-30 16:26:05 131

原创 面试宝典:基础语言(二)

1、说一说static关键字:加了static关键字的全局变量只能在本文件中使用;static定义的静态局部变量分配在数据段上,普通的局部变量分配在栈上,会因为函数栈帧的释放而被释放掉;对于一个类中的成员变量和成员函数来说,加了static关键字,则此变量/函数就没有了this指针了,必须通过类名访问。2、strcpy和strlen:strcpy是字符拷贝函数,后接两个参数将第二个参数逐...

2019-08-29 17:22:34 203

原创 面试宝典:指针等类型基础语言(一)

1、static关键字的作用:静态全局变量:在全局变量前加static,全局变量就变为全局静态变量;静态存储区,在程序运行期间会一直存在;未初始化的静态变量会自动初始化为0;作用域为从定义处开始到文件结尾。局部静态变量:在局部变量前加static关键字,局部变量就成为一个局部静态变量;内存中也在静态存储区中;没有初始化会被自动初始化为0;作用域仍然为局部作用域当定义它的函数或者语句...

2019-08-29 08:58:05 139

原创 杂谈结束,根据面经写系列的

1、抽象类和接口的区别:使用关键字不同一个是abstract一个是interface。抽象类中可以有普通方法接口全为抽象方法。抽象类只能被单继承,一个类只能继承一个抽象类,而一个类可以继承多个接口。抽象类中可以用public、protected、private修饰,接口中只能有public。接口没有构造方法,抽象类可以有构造方法。接口中只能有static、final变量不能有其他变量。...

2019-08-28 09:41:21 80

原创 知识整理,面经汇总杂谈(后端,开发,研发,算法岗)

1、进程通信方式:简单来说就是 管道、信号、信号量、队列、套接字、共享内存2、linux命令相关:ps 查看进程: 杀死进程 kil -9(强制终止) 可以接进程pid或者进程名字更改文件/文件夹拥有者:chown:-f 无法更改不显示错误信息-R递归更改文件夹内所有-v显示拥有者更改详细信息-c确认更改时才显示更改动作-h只对连接进行变更chmod 修改权限:r w x对...

2019-08-26 16:30:51 430

原创 删除链表中重复的节点

第十八题,(第二道题目),题目如下:3.14(a):1->2->3->3->4->4->53.14(b):1->2->5思路分析:

2019-05-28 11:12:55 61

原创 删除链表的节点

第十八题,(第一个)题目如下:思路如下:例如删除节点i;需要时间复杂度为O(1),则不能从头遍历,设节点i的下一个节点为节点j,则将节点j复制到节点i再将节点j删除,这就相当于把节点i删除了。如果要删除的节点位于尾部,为最后一个节点则仍需从头开始遍历,得到该节点的前序节点,然后完成删除操作。如果只有一个节点,删除后要把头结点置为空。代码如下:#include <stdio.h&g...

2019-05-25 23:50:20 69

原创 打印从1到最大的n位数

第十七题,题目如下:思路如下:

2019-05-23 23:53:05 74

原创 数值的整数次方

第十六题题目如下:思路分析:首先想到一个很简单的代码,如下:运行结果正确为81。但题目并未要求exponent为正整数,以上代码当输入exponent为0或负数时出错,一个数的负数次幂的结果为正数次幂取倒数。根据这个思路写出下面的代码:#include <stdio.h>bool Input = false;//用于判断是否输入错误double PowerUnsigne...

2019-05-20 18:28:46 72

原创 二进制中1的个数

第十五题题目如下:思路分析如下:第一种思路逐个判断该数字的二进制最右一位是否为1,判断后将其右移一位使得从右往左的第二位变为最右位,循环直至该数字移位到0;判断方法为将这个数字与1相与若结果为1则其为1,若结果为0则其为0;负数移位后补得是1,故此方法对于负数并不适用,会无限循环。另外一种就是每次判断之后把相与的1向左移一位,循环直至其为0。最好的一种方法:思路是这样的:一个十进制转成的...

2019-05-19 17:45:07 84

原创 剪绳子问题

好快也好慢,第十四题了,第十四题题目如下:1、自下而上的动态规划:思路如下:定义f(i)是绳长n为i时剪完后各段绳子长度乘积的最大值。可以知道当i为1,2,3时f(i)分别为0,1,2。由自下而上的动态规划思想可知一个公式f(i)=max{f(i)*f(n-i)} (n>i>0)其中因为f(4)=max{f(1)*f(3),f(2)*f(2)}由此可得products[0]=0,...

2019-05-18 19:51:27 152

原创 机器人的运动范围

第十三道题目,和第十二个很类似,题目如下:思路分析:和第十二题类似,这个从0,0开始运动,逐个探测与其相邻的格子是否符合可以移动的要求,符合则移动并继续探测,反之则返回其前一个格子继续探测代码如下:#include <stdio.h>#include <string.h>int moving(int k,int rows,int cols,int row,int...

2019-05-17 11:05:31 87

原创 矩阵中的路径

第十二题,题目如下:思路如下:在矩阵中任选一个格子为路径的起点,其为第i个,若其与要查找字符串的第i个相等,则寻找其相邻的格子与字符串的第i+1个元素是否相等,不相等则返回第i-1个字符。完整代码如下:#include <stdio.h>#include <string.h>bool pathCore(const char* matrix,int rows,i...

2019-05-15 19:28:00 82

原创 旋转数组的最小数字

第十一题题目如下:思路如下:

2019-05-13 23:40:26 79

原创 斐波那契数列

今天是第十个题目,比较简单题目如下:思路:斐波那契数列,非常熟悉的一个题目了,课本上用的递归,很多重复计算显然不是最好的方法,进而用自下向上的计算方法避免重复计算使时间复杂度为O(n)。代码如下:#include <stdio.h>long long Fibonacci(int n){if(n<=0)return 0;if(n==2)return 1;lon...

2019-05-09 17:28:52 327

原创 用两个栈实现队列

前天晚上系统崩了,重装了windows 10,重装了各种软件,万幸虚拟机及其他软件还在一部分,重要的资料也没有丢失太多,今天继续写,该第九题了,题目如下:还是先说一下思路:栈是先进后出,队列是先进先出,两个栈实现一个队列在队尾插入节点和在队头删除节点的功能;在队尾插入的数据直接压入第一个栈,在队头删除节点时判断第二个栈是否为空,若为空则将第一个栈中的数据依次出栈并且压入第二个栈中,然后第二个栈...

2019-05-08 20:10:07 72

原创 二叉树的下一个节点

第八个题目,题目如下:思路分析:首先判断该节点是否有右子树,若存在右子树则其右子树的最左孩子节点为其中序遍历的下一个节点;若不存在右子树则判断其是否为其双亲节点的左孩子,若是则其双亲节点为其中序遍历中的下一个节点;若为其双亲节点的右孩则沿其双亲节点向上遍历,一直到找到一个为其双亲节点左孩子的节点,该节点为其中序遍历中的下一个节点。完整代码如下:#include <stdio.h&gt...

2019-05-04 22:44:57 82

原创 重建二叉树

又往后拖时间了,没办法她最大,今天抽时间写了,第七道题目,题如下:思路如下:树的先序遍历的第一个数为根节点,然后在中序遍历中根节点以前的为树的左孩子,根节点以后的为树的右孩子,就可以找到左右子树的节点个数,在前序遍历中也可以确定左右子树的节点,把树的子树看做一颗独立的树,运用递归进行树的重构,代码如下:#include <iostream>#include <except...

2019-05-02 23:59:39 85

原创 从尾到头打印链表

第六题,题目如下:思路分析:没啥分析的,很自然想到用栈。或者就是和树的遍历那样递归求,链表很长递归的话会栈溢出,所以用栈。代码如下:...

2019-04-29 10:46:35 89

原创 替换空格

这次的题目是替换字符串中的空格,题目如下:首先理一下思路,第一时间想到的肯定是遍历数组遇到空格就把空格替换为%20这3个字符来存储;这样每个空格都需要把它后面的字符向后挪;时间复杂度为O(n)。需要降低时间复杂度,上面的方法中空格后的字符移动多次,降低移动次数来降低时间复杂度。可以先遍历数组找出空格字符的个数,然后计算得出替换之后字符串长度,设置两个指针,指针p1指向原数组的最后一个字符,p2...

2019-04-27 00:04:03 59

原创 二维数组中的查找

今天是第四道题目,二维数组中的查找,题目如下:思路是把这个二维数组想象成一个矩形;从右上或者左下角数组元素开始与要查找的数字比较;若大于要查找的数字则删去此列,若小于要查找的数字则删去此行,若等于要查找的数字则返回true;从右上角开始直到左下角结束(从左下角开始直到右上角结束)若没有与之相等的数字则返回false。代码如下:#include <stdio.h>bool se...

2019-04-24 12:11:26 96

原创 找出数组中重复的数字

今天是第三个问题,一个c/c++数组问题,分为两问,题目如下:这个数组长度为n,并且其数字在0到n-1的范围内(少给了一点,这个数组中的数字应该是正整数)。只让找出任意一个重复的数字。思路可以这样:对数组进行遍历,如果第i个位置的值为m(m!=i)则判断第i个位置的值与第m个位置的值是否相等,相等则返回true,否则交换两个位置的值;如果第i个位置的值为i继续遍历该数组。每个数组元素至多移动两...

2019-04-22 20:16:33 213

原创 只能生成一个实例的类

这次遇到的是一个c#问题,本着迎难而上精神虽然c#不熟但是盘它就行了。问题如下:用linux编译c#需要先搭建环境,那就先搭建一个吧。搭建环境有好多坑,根据以下内容可以完成并且解决各种问题:https://www.cnblogs.com/ddrsql/p/6030110.htmlhttps://www.cnblogs.com/guoyuanwei/archive/2012/03/04/...

2019-04-19 20:30:36 181

原创 重载赋值运算符

重载赋值运算符为自己学习算法,c/c++语言,也为能更好面试,写下博客,希望自己能坚持更新吧!今天是第一个问题重载赋值运算符,用的linux编程还不太熟悉,两天一个吧,熟悉了会加快进度,慢慢来总会熟悉的不是,遇到的诸多问题和解决方法也写到了下面。第一题,题目如下:分析:1、函数返回值定义为CMyString引用类型,为了能连续赋值;2、判定是否为自身赋值,自身赋值则直接返回;3:、...

2019-04-17 13:53:44 200 1

空空如也

空空如也

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

TA关注的人

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