- 博客(68)
- 收藏
- 关注

原创 C++入门必看知识点详解
C++入门前言:本篇博客主要叙述了C++中一些关键字和函数的规则和用法,知识比较零碎,较为冗余。本节目录C++入门1.C++关键字2.命名空间3.C++输入&输出4.缺省参数4.1全缺省参数:4.2半缺省参数5.函数重载6.引用7.内联函数8.auto关键字(C++11)9.基于范围的for循环10.指针空值---nullptr(C++11)1.C++关键字C++关键字(C++98...
2020-04-07 16:13:53
3609
5

原创 【套接字编程】UDP协议详解
【套接字编程】UDP协议(详解 + 实现)前言:传输层协议场景:通信中客户端与服务端进行交互客户端:主动发起请求的一端服务端:被动接受请求的一端传输层协议的分类与选择tcp协议/udp协议两种协议的区别(面试常考)tcp协议(传输控制协议)特点:面向连接,可靠传输,面向字节流常用于对安全可靠性要求高于对性能要求的程序。例如:文件传输udp协议(用户数据报协议)特点:无连接,...
2020-04-04 18:01:38
1419
4

原创 【Linux】vim、gcc、Makefile
【Linux】开发工具及使用(vim、gcc、Makefile)首先要使用到的工具有vim、gcc、Makefile等。Vim和gcc1. vim主要叙述vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:正常/普通/命令模式(Normal ...
2020-03-18 14:09:49
1339
4

原创 【数据结构】线性表中的单链表
单链表链表:概念:链表是一种物理存储上的非连续、非顺序的存储结构。数据的逻辑顺序通过链表中的指针链接实现的。实际中链表的结构非常多样,以下情况组合起来就有8种链表结构:单向、双向带头、不带头循环、非循环优缺点:优点:1.任意位置插入删除时间复杂度为O(1)2.没有增容问题,插入一个开辟一个空间。缺点:以节点为单位存储,不支持随机访问,查找较为麻烦。链表和顺序表之间优缺...
2020-03-14 14:40:04
1253
2

原创 【牛客】[编程题]组队竞赛
[编程题]组队竞赛本提链接:https://www.nowcoder.com/questionTerminal/6736cc3ffd1444a4a0057dee89be789b?orderByHotValue=1&page=1&onlyReference=false热度指数:3071时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M算法知识...
2020-03-13 18:29:38
3631
11
原创 大小端(数据在内存中的存储)
数据在内存中的存储本篇目录数据在内存中的存储1 整形在内存中的存储:原码、反码、补码1.1 原码、反码、补码2 大小端1 整形在内存中的存储:原码、反码、补码1.1 原码、反码、补码计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。原码 直接将二进制按照正负数的形式翻译成二进制就可以。反码 将原码的符号位不变,其他位依次按位取反就可以得到了。补码反码+1就得到补码。 正数的原、反
2021-02-24 14:52:06
2383
原创 全排列字典序
全排列字典序【牛客剑指offer:字符串的排列】【本题解析】【代码实现】class Solution {public: void DFS(string& str,set<string>& res,int begin){ //边界条件 if(begin == str.size() - 1){ res.insert(str); } for(int i = begin;i <
2020-10-25 14:31:42
252
原创 【牛客】链表中环的入口结点,代码原理解析
链表中环的入口结点,代码原理解析【本题链接】题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。解题思路1.首先判断是否有环,快指针走两步,慢指针走一步,相遇则有环,快指针走到空,则没有环(前后指针法)2.有环,则让其中一个指针重新指向链表头部,另一指针在相遇位置,两个指针同时出发,每次都走一步,再次相遇的位置就是环节点的入口。代码实现class Solution {public: ListNode* EntryNodeOfLoop(ListNod
2020-10-24 20:13:37
270
原创 【牛客】设计LRU缓存结构(map和链表)
【牛客】设计LRU缓存结构(map和链表)[本题链接]题目描述 设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能 set(key, value):将记录(key, value)插入该结构 get(key):返回key对应的value值要求 set和get方法的时间复杂度为O(1) 某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。 当缓存的大小超过K时,移除最不经常使用的记录,即set或get最久远的。 若opt=1,接下来两个整数x, y,表示s
2020-09-05 17:05:38
270
原创 【每日一题】旋转打印矩阵
【每日一题】旋转打印矩阵题目描述:二维数组,通过N(1<N<2)来确定矩阵的大小,从右上角开始向下打印,然后向左打印,顺时针完整矩阵填充举例:输入:4输出:输入:8输出:题解:1.通过min,max来控制每一层边解控制2.通过循环控制来给每个位置赋值3.通过count自加,完成按顺序数组自加代码如下:#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>usin
2020-08-24 15:12:08
325
原创 易错选择题
1.选择题题一:以 下 for 循 环 的 执 行 次 数 是()。for(x=0,y=0;(y=123)&&(x<4);x++);A 是无限循环B 循环次数不定C 4次D 3次他的回答: A (错误)正确答案: C逗号表达式的要领1.逗号表达式的运算bai过程为:从左往右逐du个计算表达式。2.逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。所以此题考察了逗号表达式,逗号表达式从左往右一次计算,但是此题循环中的判断条件,y=123是个赋值语
2020-08-07 22:26:11
1744
1
原创 【算法】动态规划+题型举例+详细分析
【算法】动态规划本篇内容【算法】动态规划1.概念主要思想及场景用法2.题目练习2.1第1题 Fibonacci2.2第2题 字符串分割(Word Break)第3题 三角矩阵(Triangle)1.概念主要思想及场景用法Dynamic ProgrammingDP定义:动态规划是分治思想的延伸,通俗一点来说就是大事化小,小事化无的艺术。在将大问题化解为小问题的分治过程中,保存对这些小问题已经处理好的结果,并供后面处理更大规模的问题时直接使用这些结果。动态规划具备了以下三个特点:把原来的问题分解成
2020-08-03 16:49:37
1449
原创 C++map
C++map【本章内容】C++map1.map2.map的使用3.multiset和 multimap1.map【map的文档简介】翻译:map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同,并且在map的内部,key与value通过成员类型value_type绑定在一起,为其取别名称为pair:typedef
2020-07-18 13:22:35
153
原创 C++ 初识关联式容器和set
C++ 初识关联式容器和set[本篇目录]C++ 初识关联式容器和set1. 关联式容器2.键值对3. 树形结构的关联式容器4.set4.1set的介绍4.2set的使用1. 关联式容器引言:在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C++11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。那什么是关联式容器?它与序列式容器有什么区别?关联式容器也是用来存储数据的,与序列式容器不同的是,其里
2020-07-15 13:33:37
461
原创 C++多态(二)实现原理和常考面试题
C++多态(二)实现原理和面试题常考本篇内容C++多态(二)实现原理和面试题常考1.前言1.1C++11 override 和 final1.前言上篇博客除妖1.1C++11 override 和 final加加加
2020-07-12 12:42:56
372
原创 C++多态(一)概念及知识点详解
C++多态(一)概念及知识点【本篇内容】C++多态(一)概念及知识点1.多态的概念2. 多态的定义及实现2.1多态的构成条件2.2虚函数2.3虚函数重写2.4易混淆知识点2.4.1多态调用和普通函数调用(易混淆)2.4.2子类虚函数可省略virtual2.4.3虚函数重写的例外1:协变2.4.4虚函数重写的例外2:析构函数重写3.抽象类3.1概念3.2接口继承和实现继承(了解)1.多态的概念多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。举个栗
2020-07-11 11:46:41
725
原创 C++继承(二):菱形继承,常见面试题
C++继承(二):菱形继承,常见面试题本章内容C++继承(二):菱形继承,常见面试题1.菱形继承的概念2.详解2.1菱形继承的问题2.1.1数据二义性:2.2.2数据冗余2.2虚拟继承解决数据冗余和二义性2.2.1用法2.2.2虚拟继承的解决原理3.继承的总结4.常见面试题1.菱形继承的概念单继承:一个子类只有一个直接父类时称这个继承关系为单继承多继承:一个子类有两个或以上直接父类时称这个继承关系为多继承菱形继承:菱形继承是多继承的一种特殊情况。菱形继承的问题:从下面的对象成员模型构造,可
2020-07-09 13:22:25
1016
1
原创 C++继承(一):概念及用法
C++继承(一)【本章内容】C++继承(一)1.继承的概念及定义1.1继承的概念1.2继承的定义1.2.1定义格式1.2.22继承关系和访问限定符2.基类和派生类对象赋值转换3.继承中的作用域(隐藏)4.派生类的默认成员函数5.继承与静态成员1.继承的概念及定义1.1继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知
2020-07-08 16:02:25
1240
原创 【剑指offer】数组中出现次数超过一半的数字(三种解法)
数组中出现次数超过一半的数字【本题链接】【题目描述】题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。【本题解析】解法一:(巧用map,简单高效)本题本来考察的就是出现次数问题。使用Map较为方便,key存储数字值,value存储出现的次数。在数组中读取一个数字后,若Map中不存在相应数字则在Map中添加该数字,并将次数置为
2020-06-04 11:40:05
317
原创 日期类的实现(C++编写练习类与对象)
日期类的实现(C++编写)本篇目录日期类的实现(C++编写)1.类与对象:2.日期类的实现2.1类的结构2.2类的构造函数2.3类的析构函数2.4类的拷贝构造函数2.5运算符重载2.5.1赋值运算符重载2.5.2+=运算符重载2.5.2+运算符重载2.5.3-=/-运算符重载3.总结4.完整代码1.类与对象:类与对象主要叙述了类的构造和用法,三种访问方式,还有6个默认成员函数的原理作用及使用。这一节知识点不再叙述了,类的操作主要还是需要实践的。我们通过日期类的实现可以有效的锻炼类的使用。2.日期类的
2020-05-30 12:06:22
1778
原创 【剑指offer】复杂链表的复制(详解 + 两种方法)
【剑指offer】复杂链表的复制【本题链接】【题目描述】输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)【题目分析】本题具有一定难度,主要考查了对于链表的掌握,我们主要使用两种方法解决此题,常规方法逻辑思维比较复杂,对于数据结构的掌控力要求比较高,可以有效的锻炼代码能力和逻辑思维。第二种使用map解决,较为方便
2020-05-21 13:27:14
2979
3
原创 【剑指offer】二叉搜索树的后序遍历序列(举例 + 图解)
【剑指offer】二叉搜索树的后序遍历序列【本题链接】【题目描述】输入一个非空整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。【解题思路】性质:二叉排序树的性质:左子树上所有节点的值均小于它的根节点;右子树上所有节点的值均大于它的根节点。二叉排序树后序遍历的性质:序列最后一个数字是根节点,序列剩余部分分成两部分,前一部分是左子树,后一部分是右子树。举例:判断序列{1,3,2,5,7,6,4}是否是二叉排
2020-05-12 11:55:56
1261
3
原创 【剑指offer】从上往下打印二叉树
【剑指offer】从上往下打印二叉树【本题链接】【题目描述】从上往下打印出二叉树的每个节点,同层节点从左至右打印。【题目解析】本题主要考察了队列、树等数据结构的使用,题目描述已经很清晰了,就是层序遍历这棵树,我们根据队列先进先出的规则来解决此题。【解题思路】1.若树为空,则直接返回数组2.若不为空,则按照根节点,根的左子树节点和右子树节点进行打印3.将根节点进入队列,取到对头的元素放入数组,进行出队操作,根的左节点和右节点依次进入队列(左右节点为空则跳出),将已放入数组的对头结点删除。4
2020-05-09 11:35:20
776
8
原创 【剑指offer】树的子结构(递归+图解)
【剑指offer】树的子结构(递归+详解)【本题链接】【题目描述】输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)【本题解析】本题题意比较明了,主要考察的是树型结构的掌握,一般设计到树型结构的题使用递归是最简单的方法,否则就会比较难以控制代码【解题思路】总体思路:首先根据题意来判断第二颗树是否是第一棵树的子树。则要保证第二棵树的全部节点都...
2020-04-26 13:23:33
259
原创 【剑指offer】重建二叉树(递归思想)
【剑指offer】重建二叉树(递归思想)【本题链接】【题目描述】输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。【题目分析】本题主要是对二叉树性质的考察,是否能理解到三种遍历之间的关系是解决此题的关...
2020-04-20 12:23:03
833
10
原创 【剑指offer】从尾到头打印链表(单链表逆置 + 图解 + 单链表实现)
【剑指offer】从尾到头打印链表(单链表逆置)【本题链接】【题目描述】输入一个链表,按链表从尾到头的顺序返回一个ArrayList。【题意解析】本题就是单链表逆置问题,考察了对于链表结构的掌握【解题思路】本题一共有两种解法,一种不改变单链表的结构,另一种改变单链表的结构。【解法一:】最简单的获取链表中各个节点的值,然后在数组中进行逆置操作,则可以从尾到头打印单链表,使用到C...
2020-04-18 15:08:11
1293
10
原创 【剑指offer】替换空格(两种解法)
【剑指offer】替换空格【本题链接】【题目描述】请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We AreHappy.则经过替换之后的字符串为We%20Are%20Happy。【本题解析】这道题题意很明确,就是考察字符串操作的题,有多种解法,我主要说两种解法。【解题方法】方法一:O(n2)的解法常规方法,要在空格处添加一个“%20”,则需要将后面...
2020-04-17 11:37:34
276
3
原创 【剑指offer】二维数组中的查找
【剑指offer】二维数组中的查找【本题链接】【题目描述】在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。【题意分析】题目描述比较简单,从上到下,从左到右依次递增的二维数组中进行查找。【解题思路】1.首先要抓住这个题的特点,那就是从上到下...
2020-04-13 13:36:25
293
8
原创 【C++】单例模式及线程安全
单例模式及其下线程安全本篇目录单例模式及其下线程安全1.设计模式1.1单例模式2.饿汉模式饿汉模式多线程下是否安全饿汉模式优缺点3.懒汉模式(常用)懒汉模式在多线程下是否线程安全如何解决懒汉模式在多线程下的线程安全问题懒汉模式的优缺点1.设计模式设计模式:设计模式(Design Pattern)**是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。**为什么会产生设计模式这样...
2020-04-11 22:41:57
1807
3
原创 【C++】特殊类的设计
特殊类的设计及单例模式(面试高频)本篇目录特殊类的设计及单例模式(面试高频)1.掌握特殊类的设计1.1请设计一个类,只在堆上创建1.2 请设计一个类,只能在栈上创建对象1.3请设计一个类,不能被继承1.掌握特殊类的设计一个类它可以在栈,堆,数据段上调用举例:#define _CRT_SECURE_NO_WARNINGS#include<iostream>using nam...
2020-04-11 15:05:41
340
1
原创 【MySQL】表的增删查改
表的增删查改本章目录表的增删查改新增1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入2.查询2.1 全列查询2.2指定列查询2.3别名2.4去重:DISTINCT2.5排序:ORDER BY2.6条件查询:WHERE3.修改(Update)4.删除(Delete)新增语法:INSERT [INTO] table_name [(column [, column] ...)]...
2020-04-10 19:01:23
231
原创 【MySQL】数据库与表的操作
【MySQL】数据库与表的操作本章目录【MySQL】数据库与表的操作1.数据库操作1.1显示当前数据库1.2创建数据库1.3删除数据库1.4使用数据库2.表的操作2.1创建数据表1.数据库操作进入数据库mysql -u root -p1.1显示当前数据库SHOW DATABASES;1.2创建数据库语法规则CREATE DATABASE [IF NOT EXISTS] db...
2020-04-10 13:57:31
193
1
原创 详述Linux下安装mysql及密码设置修改(新手必备)
Linux下安装mysql及密码设置修改本篇目录Linux下安装mysql及密码设置修改1.Linux下安装过程:1.1切换root用户进行操作1.2安装1.3更改配置2.密码设置或修改1.Linux下安装过程:1.1切换root用户进行操作以下操作都以 root 用户进行操作以下操作都以 root 用户进行操作以下操作都以 root 用户进行操作重要的事情说三遍1.2安装安装 ...
2020-04-09 17:30:22
3236
8
原创 “网络要想学得好,HTTP少不了” 详解HTTP协议
认识HTTP协议应用层协议前言:应用层认识:程序员自己编写,用来满足日常需求、解决实际问题的网络程序都属于应用层应用层协议概念:负责应用程序之间的数据沟通分类:自定制协议和知名协议(HTTP)博客目录认识HTTP协议应用层协议1.自定制协议:2.HTTP协议2.1URL2.1.1URL中包含的要素:2.1.2urlencode和urldecode2.1.3将网址输入浏览器回车后,会发生...
2020-04-08 18:44:38
342
1
原创 【牛客网编程题】数位之积(vivo2020届春招编程题)
数位之积(vivo2020届春招编程题)本题链接【题目描述】现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。示例1输入36输出49示例2输入100输出455【题意分析】本题题意比较明了,是一个最优解问题,有一定难度,逻辑思路比较复杂。【解题思路】...
2020-04-08 11:25:08
992
1
原创 【c++开篇】浅谈面向对象与面向过程(举例说明)
浅谈面向对象与面向过程前言:刚接触C++第一时间,都会经常听到这样一话:C语言面向过程,C++面向对象。在老师模拟面试时,问道你对面向对象与面向过程的认识时,我有点懵答的不是很完整,刚好C++开篇写一下。一、面向对象与面向过程的区别(常考)面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立...
2020-04-06 23:37:11
2155
转载 总结udp和tcp协议
这有两篇很好的博客,总结很全面,推荐收藏观看TCP与UDP的技术面试考点TCP的三次握手与四次挥手理解及面试题(很全面)版权声明:本文为优快云博主「青柚_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/qq_38950316/article/details/81122894...
2020-04-06 15:06:04
337
2
原创 【计算机网络】详解TCP协议
前言:上篇博客主要讲述了udp协议,先回顾一下udp编程流程和注意事项udp编程:服务端:1.创建套接字2.为套接字绑定地址信息3.接收数据请求4.处理后,发送数据5.关闭套接字客户端1.创建套接字2.为套接字绑定地址信息3.发送数据请求4.服务端处理后,响应请求5.关闭套接字【注意事项】1。udp编程,首先应启动服务端,因为用户数据报协议的特点就是无连接不可靠,如...
2020-04-06 13:40:05
626
2
原创 【牛客易错编程题】把字符串转换成整数
class Solution {public:int StrToInt(string str) {if(str.empty()){return 0;}int symbol = 1;//标记正负号if(str[0] == ‘-’){symbol = -1;str[0] = ‘0’;//字符零占位}if(str[0] == ‘+’){symbol = 1;str[0] ...
2020-04-06 11:04:22
964
2
原创 【鸡汤帖】别问,问就是正能量
【鸡汤帖】别问,问就是正能量今天我们写一片“男人看了会沉默女人看了会流泪”的鸡汤帖。一篇正规的鸡汤文,其公式就是:编故事+抛论点+编故事+加强论点+反面故事+总结。【开灌】你以为我会向上面公式讲的一样,来一篇感人肺腑的鸡汤文?就硬灌,你们可都是我的亲兄弟呀,要多包容...
2020-04-05 12:03:53
3562
26
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人