自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单链表面试题汇总

本文罗列出单链表在面试中常见的考题,一开始都是《剑指offer》上总结的题型,后面在遇到会更新到这里。定义部分:typedef struct Node{ int data; struct Node* next;}Node,*List;链表逆置(反转链表):解决这个题最大的问题就是对操作节点的前驱节点的保存,所以大致思路是:定义三个节点,一个是当前节点p_Node,一...

2020-03-12 17:32:27 261

原创 shell学习之变量

shell的变量是base环境下很重要的东西,举个例子,在linux这种多用户,多任务的环境下,每个用户都有自己的bash命令,linux如何区分这个bash给相应的用户发送mail,这里就是用变量保存的用户的mail,访问变量的内容,找到相应的用户和权限。如何创建一个shell变量,这是再简单不过的事情了变量名=变量内容中间不能加空格,这就生成了一个shell变量,在举例子之前,我们先介绍一个东西:echo ,这个是显示变量内容的命令,用法如下:echo $变量名这下我们就可以

2020-07-26 19:05:47 264

原创 二分(折半)查找及其使用示例

折半查找是一种较为高效的查询方法,其使用条件是要查找的数据是需要排好序的,有了这个前提条件,折半查找的时间复杂度最差也是在O(logn),是非常高效的一种查询方式,其思路是从数组中间值arr[mid]和所查询的值key进行比较,如果arr[mid] == key,那么就是找到了;如果arr[mid] > key,就是在数组的左半边查找;如果arr[mid] < key,就是在数组的右半边查找循环往复,这样一次省略一半的数据,在数据量特别多时,效率非常的快。参考代码如..

2020-05-09 18:15:40 799

原创 手写基本的String类

String类是C++模板库中的一个方法类,书写其基本方法是考研C++初学者一个很经典的考题,注意细节,写的完美的话也不是那么容易的,写个博客加强一下记忆。//基本String类方法class String{public : String(const char* str = NULL); String(const String &other); ~String();...

2020-05-07 15:14:31 397

原创 C++STL之vector

C++STL是C++标准模板库,一个非常强大的库,这个库是C没有的,也是C和C++的区别之一,这个库有多么强大呢,他含有很多容器,这些容器实际上就是各种数据结构,而只需要调用这些库就可以完成数据结构能完成功能。向量容器 vectorvector是一个底层可扩容的容器,也是最常见的最长使用的STL容器之一,他和数组最大区别就是底层可以自动扩容,用的也是malloc函数进行扩容,我们今天来介绍...

2020-04-14 22:35:00 264

原创 个人长期规划

自我认识首先进行自我认识,我是双非普通一本院校软件工程系的学生,目标是毕业能够成功就业,目标年薪25w,个人学习的C/C++语言,专业技能较为熟悉,合作开发过一个不大不小的项目,没有成功上线,只是在linux平台下模拟实现的客户端和服务器。项目中用到过select方法,网络协议知识,以及后台的数据库mysql的建立;参加过数学建模和蓝桥杯算法大赛,都是省级三等奖。从个人认识中分析自己...

2020-04-11 16:40:15 1133

转载 HTTP状态码

HTTP状态码当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。下面是常见的HTTP状态码:200 - 请求成功 301 - 资源(网页等)被永久转移到其它URL 404 - ...

2020-03-25 22:05:12 349

原创 单链表的基本操作

单链表作为数据结构的基础,数据机构作为算法的基础,算法作为offer的基础,所以单链表的重要性就不用我多说了吧这篇博客是把单链表的基本操作详细介绍一遍,以巩固我对单链表指针的理解。首先是定义部分:struct Node{ int data; struct Node* next; };typedef struct Node *List;这个就不用我多说了吧,懂得都懂,不懂...

2020-03-11 18:01:59 210

原创 请问你知道为什么关系型数据库要叫关系型数据库吗?

我一直在使用MySql进行数据库的增删改查等操作,也知道MySql叫数据库,却没有深入的探讨一下MySql是什么类型的数据库,还有什么类型的数据库,以及这些数据库的区别和特点是什么,虽然其他数据库去深入学习和了解可能只能在工作以后才有机会接触,但是事先进行了解,我想还是有一定必要的。关系型数据库:首先MySql数据库称为关系型数据库,所谓关系型数据库,就是建立在关系模型的基础上创建的数据库...

2020-03-10 15:58:28 2452

原创 关于MySql数据库索引的总结

关于MySql很多知识都遗忘了,面试的时候还是问到一些内容,所以也要系统的整理一下了,说实话数据库这边一开始就学的不太行,趁着复习好好学一下,对底层的理解,实际应用的情况,才是要学习的重点。先从提问最多的索引开始:索引就是数据库表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中某一特定信息。索引本质就是数据结构,索引的一个主要目的就是加快检索表中数据的方法...

2020-03-10 00:28:07 234

转载 转载:MD5撞库

今天面试的时候,对自己项目里关于用到的MD5加密方式,面试官询问了一下对MD5撞库了解吗?我当时是一脸懵,没有涉及过安全领域的我从来没听说过,什么是撞库?MD5撞库又是什么?于是面试凉了来网上搜集了一下撞库的资料,由于不是做安全方面的,不做具体深入的了解了。首先是最常见的三种撞库方法:第一种:用n个密码字典撞m个账号,这个的表象是,一个账号在某个较短的时间内,可能会有多次密码尝试。所以...

2020-03-08 20:36:02 1537

原创 关于线程和进程的总结

前言:张罗张罗网上进程和线程的内容,在加上一些自己的理解,再放到实际应用中进行的操作。通过腾讯的面试,我明白了理论知识光知道是不太行的,你要理解具体场景下,应该怎么具体使用,这种东西只能通过多写项目完成,别无他法。定义:进程进程其实是一种抽象的概念,没有具体的定义,按照我的理解来说,进程就是具有一定功能的程序一次动态执行的过程,是系统资源分配和调度的基本单位。进程由三部分构...

2020-03-08 12:40:22 243

原创 三角形的最短路径

一个三角形,找出从上到下最小路径和,每一步只能移动到下一行相邻的节点。例如: 1 5 4 6 2 74 1 8 3最小路径为1+4+2+1 = 8输入一个vector数组,输出最小值的和...

2020-03-07 09:15:49 1545

转载 转载:动态规划的奇淫巧技

很多读者抱怨股票系列问题奇技淫巧太多,如果面试真的遇到这类问题,基本不会想到那些巧妙的办法,怎么办?所以本文拒绝奇技淫巧,而是稳扎稳打,只用一种通用方法解决所用问题,以不变应万变。这篇文章用状态机的技巧来解决,可以全部提交通过。不要觉得这个名词高大上,文学词汇而已,实际上就是 DP table,看一眼就明白了。先随便抽出一道题,看看别人的解法:int maxProfit(vector...

2020-03-06 22:39:42 446

原创 浅谈HTTP中GET和POST

刷牛客网络知识的时候偶然刷到的,HTTP没有深入了解过,所以对这两个协议不是很理解,然后在网上搜了一下,做一个总结。首先简单介绍一下GET和POST 这两个方法,都是HTTP中的方法GET是将数据报的header(头)和data(数据)一起发送给服务器,服务器响应200(返回数据);POST则先将数据的header先发过去,服务器响应100(continue),然后再把data数...

2020-03-05 23:24:19 224

原创 关于位运算的总结

位运算就是将十进制转换成二进制进行计算,非常考察程序员的基本功,十进制是我们常用的运算数字,但二进制不同,不经常计算的话,二进制的转换都会有些陌生。二进制的运算主要分为与(&),或(|),异或(^),左移(<<)和右移(>>)。首先介绍一下几种运算方式的运算方法:首先是与,或,异或的运算与:都对与才对或:有对则或对异或:相同为假,不同为真...

2020-03-04 10:52:44 241

原创 通过一个atoi函数能学到多少知识?

什么是atoi函数,就是把字符串转成数字,比如你输入“123”,系统就会输出123(整形),这就是atoi函数,这么一个看似简单的函数,实际写起来能学到多少知识呢?...

2020-03-03 10:55:54 249

原创 奇安信笔试题兔子繁殖问题

有一对兔子,从第五个月开始每月生一对兔子(就是四个月后生第一对),新生的兔子也是四个月后开始每月生一对,假设兔子不会死亡,问第n个月后有多少对兔子。这个题的本质就是斐波那契数列,我当时做的时候用的递归,然后只解决了70%的测试用例,应该是复杂度太大,然后就没有优化,后来重新温习了一下斐波那契数列,对这个问题做出了优化。分为两种方法,一种是循环,一种是递归。循环的写法:...

2020-03-02 17:59:58 908 3

原创 浅谈网络四层模型

网络的四层模型分别数据链路层,网络层,传输层,应用层,俗称tcp/ip协议族。tcp和ip协议是其中最常用的两个协议,所谓的四层模型,就是从OSI七层模型中简单缩减而得来的。下面是四层模型的层级图片:我们分别谈谈,首先是数据链路层:其作用是在网络接口处实现网卡的驱动程序,使得数据在物理媒介上得以传输。主要使用的协议有ARP(地址解析协议)和RARP(逆地址解析协议),两个协议作...

2020-03-01 23:57:11 4781

原创 网络协议汇总(TCP,UDP和HTTP/HTTPS)

前言网络协议是网络上所有设备进行通信的一种规则,每个不同的网络层之间有着不同的协议进行连接,每一层都有各自的网络协议,接收方和发送方使用的网络协议必须相同,否则无法通讯。本文总结一下常见的网络协议,以及常见的相关问题。TCP和UDP协议TCP和UDP协议的区别是常见的问题,我们基本能记住的就是TCP更加稳定,而UDP相对更不稳定,那么为什么TCP更加稳定呢,因为它使用了三次握...

2020-02-27 09:25:50 1036 1

原创 字节跳动面试题:求一颗二叉树所有子节点的父节点之和

有幸收到了字节跳动的实习生面试,虽然没有通过,但是作为第一场面试,我还是能总结出很多经验,对我以后的面试我相信会有很大的帮助。

2020-02-20 16:25:14 689 3

原创 排序算法之快速排序

快速排序是众多算法中最具特点的算法,在方法上,和冒泡属于交换排序,但在一般情况下比冒泡排序快得多,而且他和冒泡排序刚好相反,冒泡是你有序了我是最快的,而快速排序是你有序了,我是最慢的,你越乱,我越快,所以这种奇葩排序方法的原理到底是什么呢?我做一篇博客,总结一下这个方法。快速排序的原理说起来很简单,就是在一组数列中,随机找一个基准数,比基准数大的,放后边,比基准数小的,放前面,这样就完成了...

2020-02-17 23:31:06 179

原创 C++虚函数汇总

关于C++虚函数,主要是服务于多态,但里面一些细节的点还是很多的,我总结一下我目前所遇到的基本重要的几点,通过一下几个方面讲解:虚函数的介绍 那些函数可以设为虚函数?那些函数不行? 纯虚函数虚函数的介绍:虚函数说白了就是成员函数前加上virtual,虚函数主要实现多态,对多态访问父类函数方法进行操作。但是在这里有一个细节性的问题:虚函数是如何实现子类访问父类的函数的呢?这里...

2020-02-16 17:06:10 232

转载 linux下常见的ELF文件

linux下常见的ELF文件学习编译链接过程的时候,无意中发现的,总结一下:Linux下的ELF文件主要有以下四种:(1)可重定位文件.obj,这种文件包括数据和指令,可以被链接成为可执行文件(.exe)或者共享目标文件(.so),静态链接库可以归为这一类;(2)可执行文件.exe,这种文件包含了可以直接运行的程序,它的代表就是ELF可执行文件,他们一般都没有扩展名;(3)共享目标文件....

2020-02-15 00:13:31 261

原创 关于C++编译链接的全过程

语义分析分为静态语义和动态语义,静态语义通常包括声明,类型的定义和转换;动态语义是在运行阶段才能确定。

2020-02-15 00:10:39 258

原创 python的安装和使用(小白总结)

前言:由于python的火爆,我也在寒假这个无聊的时间段学习了一下,精通肯定是不敢说,熟悉肯定也差的远,顶多算了解了一下python语言,想使用一下python语言做做有趣的爬虫项目(当然这是目标,现在还不会做,做了就发出来),先把安装python的步骤发一下,让更多想要学习的小白找到安装的捷径。首先进入 www.python.com 也就是python下载的官网,就是如下页面:点击Dow...

2020-02-07 22:48:49 361

转载 C++函数符号生成规则

在复习C++的基础知识点的时候,遇到了关于写出函数生成的函数符号问题,发现自己C++函数调用约定不清楚,所以打算总结一下,将C++函数的调用约定总结一下,加深一下记忆。本文的主要内容是学习他人博客总结的结果。符号生成规则_cdecl调用约定:“?”+函数名+参数表的开始标识“@@YA”+ 函数返回类型代号+参数类型代号 +结束标识“@Z”或“Z”(无参数)。_...

2020-02-05 16:50:39 731

原创 linux下gdb调试常用的几个方法

这里总结一下我自己的常用的几个调试命令,有些更细节的命令暂时听过也没用过,这些也是供以后复习作参考。单线程:l 显示主函数代码b + LineNum(行号) 给第LineNum行加断点infobreak 显示断点信息delete 删除断点r 启动程序n 单步执行,下一步c 继续执行s 进入函数finish 跳出函数p 打...

2020-02-04 10:46:39 143

原创 二分查找的循环与递归实现

关于二分查找,之前在学习数据结构的时候已经学习过了,但是时隔半年,发现已经忘得七七八八,决定做一个二分查找的总结,明年找工作时如果印象不深刻了,就回来看看首先要知道二分查找针对的是有序数列,时间复杂度为O(),接下来看代码://循环查找int FindValue(int *arr,int n,int x)//arr是数组,n是数组长度,x是要查找的元素{ int pos = ...

2019-11-09 21:25:27 253 1

原创 大数据处理基本思想——分治法

分治法——“分而治之”众所周知,计算机计算速度非常快而被人们加以使用,但计算速度再快的计算机,处理数据的能力也有一定限度,所以在处理大数据操作的时候,采用分治法可以有效的处理目前人类社会所遇到的大部分大数据问题。分治法的主要思想就是将一个复杂的问题分成两个或多个相同的子问题,子问题可以分成更小的子问题,直到子问题可以容易解决的时候,原问题的解就是子问题解的和。下面我们举一个例子,我们先...

2019-03-11 23:45:29 5962

原创 判断素数汇总

关于判断素数,自己很早之前就写个这个代码,还记得当时还上百度查了一下什么是素数,然后感慨道自己的数学功底真滴差,后来在老师的讲解下,发现关于一个小小的判断素数就有很多玄机,由于当时老师上课的笔记丢了,所以决定在博客上重新写一份,也算是汇总。首先是输入一个数,判断这个数是否为素数。#include &lt;stdio.h&gt;#include &lt;math.h&gt;int m...

2018-11-30 23:40:35 182

原创 变量的总结

       学了这么久C语言,基本上把所有常见的变量类型都见过一遍了,为了避免变量知识杂糅到一起,也是为了更加清晰的理解关于变量,在这里做个总结。首先是内存区域,分别为:1、栈:局部变量,函数调用,不大(1M),系统自行管理,例如int a,b;2、堆:动态内存,很大(&gt;1G),程序自行管理,容易内存泄漏,例如malloc(100);3、全局变量区:全局变量,静态变量4...

2018-11-20 22:42:51 158

原创 关于递归

所谓递归,我个人理解就是自己调用自己递归有三个条件:1、前进(规模缩小)2、边界条件3、返回段下面我们通过一个函数举例:int Age(int n){ int tmp; if(n == 1) tmp = 10; else tmp = Age(n-1)+2; return tmp;}这段代码是计算关于第n个人的年龄的递归算法...

2018-11-04 13:33:29 163

原创 指针 + - 数字

我们先来看一段代码:int arr[10] = {1,2,3};int *p = arr;p++;*p = 10;这段代码里就包含了一个重要的知识:指针+1;我们来分析一下指针+1在分配地址时会出现什么情况:1、加一个字节;2、加一个单元格;3、加一个数组。目前能想到的也就这么多了,我们一个一个来说其可能性。首先是3、加一个数组,也就是指针直接从arr[0...

2018-10-24 23:29:47 842

原创 数组溢出

溢出这个词,并不少见,溢出带来的问题也会十分严重,那么数组溢出的原理是什么呢?要理解数组溢出,我们首先要知道另外一个东西,其名曰:栈;栈的介绍很简单如下图所示:值得一提的是栈的栈底地址大,栈顶的地址小,知道了这个东西,对于理解溢出就简单多了。当我们定义一个数组时,数组就是按序放入栈中的,如下图所示:这就是将一个数组放入一个栈中 ,栈顶放地址小的,栈底放地址大的,以此类推...

2018-10-22 20:00:42 4666 2

原创 初识指针

前言——关于C语言的指针,在学生IT圈内一直传的沸沸扬扬,大意就是C语言最难的就是指针,在学完指针之后,我觉得这个说法还是有一定道理的,所以写一篇博客来巩固一下关于指针的知识。我们先来看一段关于指针定义的代码:#include &lt;stdio.h&gt;int main(){ int a = 10; int b = 20; int *p = &am...

2018-10-16 23:36:48 152

原创 顺序输出,接上次

将一串数字按顺序输出:上次写到一串数字逆序输出,那我们接着上次的思路,将一串数字顺序输出,那么就是每一次取数字的最高位,然后丢掉,然后再取最高位,然后再丢掉,最后只剩下0了就跳出循环,那么问题是,怎么每次都取到最高位的数字呢?那就是每次除余最高位的位数。比如12345,第一次整除10000,得到1,接着12345%10000=2345,舍弃1,以此类推,每次输出最高位,即可完成顺序输出。...

2018-10-15 21:45:41 219

原创 统计数字n是个几位数,并将其逆序和顺序输出

​​​​​​​       这道题是学完循环分支这一节之后看到的题目,本来写的时候就想的比较简单,在听完老师的讲解之后,发现这道题所蕴含的内容和深入思考之后的问题还有很多,觉得十分有必要记录下来,供以后想起来了可做参考。首先是第一问:统计数字n是个几位数;这一问相对比较简单,思路就是对n整除,循环进行,直到n=0,返回循环的次数,方法使用while循环,for循环,或者do...while...

2018-10-14 23:35:11 359

空空如也

空空如也

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

TA关注的人

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