自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数通(DataCom)--路由交换技术学习笔记

优先级(preference)值越小优先级越高 - 直连 (0)>OSPF内部路由(10)>ISIS(15)>静态(60)>RIP(100)>OSPF外部路由(150)- 度量值(metric)当路由器通过某种协议发现了多条到达同一个目的网络的路由时(拥有相同的路由优先级),度量值将作为路由优选的依据之一。- 路由度量值表示到达这条路由所指目的地址的代价。- 一些常用的度量值有:跳数、带宽、时延、代价、负载、可靠性等。- 度量值也叫cost即路由开销- 最长匹配原则选最优路径1.先比掩码 2

2023-03-22 00:15:00 387

原创 C++从业人员行业分析报告

C++服务端开发,也就是我们常说的后端开发,如今互联网后台开发主力语言是:C++、Java、Golang,C++的主要优势是性能十分优异,极致压榨CPU,Java和Golang更适合写业务代码,对性能有严格要求的后台会优先采用C++开发,百度、腾讯等大公司有很多用C++语言开发的后台服务。这3种语言各有特色。3、在嵌入式开发领域,包括2G/3G通信领域开发,基本上也是c++、c语言的天地,大型的通信系统软件,如骨干网传输设备软件、移动通信设备、核心网设备的软件系统基本上都是使用c++/c进行开发的。

2023-03-20 01:30:00 859 6

原创 2.学习笔记

表达式:算术表达式、关系表达式、逻辑表达式、条件表达式、赋值表达式 (优先级由高到低)运算符:算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符 (优先级由高到低)脚标:(520)10 (100.11)2 (11.37)8 (4F.B6)16。程序语言发展历程:机器语言(0和1),汇编语言(低级语言),高级语言(C语言)。源程序(.c)–>编译(目标文件.obj)–>链接(可执行文件.exe)

2023-03-19 00:30:00 129

原创 Qt学习笔记

1. Qt是一个由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。2. 开发工具:Qt Creator;集成开发环境(IDE);软件开发包(SDK)。 3. 信号与槽:信号的本质就是事件,比如按钮单击、双击,窗口刷新,鼠标移动、按下、释放,键盘输入等;槽(Slot)就是对信号响应的函数。4. 信号与槽关联是用 QObject::connect() 函数实现的。5. Qt实现四则运算计算器、QObject 定时器、QTimer定时器。6. TCP客户端--TCP服务器通信7.

2023-03-18 09:07:51 131

原创 Markdown编辑器语法说明

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S

2023-03-07 17:46:01 159

原创 day17 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和

首先要明确左叶子的定义:节点A的左孩子不为空,且左孩子的左右孩子都为空(说明是叶子节点),那么A节点的左孩子为左叶子节点。这个函数通过栈模拟的后序遍历找每一个节点的高度(其实是通过求传入节点为根节点的最大深度来求的高度)。这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。判断一个树的左叶子节点之和,那么一定要传入树的根节点,递归函数的返回值为数值之和,所以为int。判断当前节点是不是左叶子是无法判断的,必须要通过节点的父节点来判断其左孩子是不是左叶子。

2023-03-07 15:44:47 178

原创 day16 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数

二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数后者节点数(取决于高度从0开始还是从1开始)二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数后者节点数(取决于高度从0开始还是从1开始)二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)而根节点的高度就是二叉树的最大深度,所以本题中我们通过后序求的根节点高度来求的二叉树最大深度。

2023-03-07 09:53:55 193

原创 day15 层序遍历 226.翻转二叉树 101.对称二叉树

判断对称二叉树比较的是两个子树的里侧和外侧的元素是否相等,我们要通过递归函数的返回值来判断两个子树的内侧节点和外侧节点是否相等,因此本题遍历只能是“后序遍历”。思想:需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。广度优先遍历也就是层序遍历,层数遍历也是可以翻转这棵树的,因为层序遍历也可以把每个节点的左右孩子都翻转一遍。前序遍历是中左右,每次先处理的是中间节点,那么先将根节点放入栈中,然后将右孩子加入栈,再加入左孩子。

2023-03-03 23:32:43 158

原创 day14 二叉树理论基础 递归遍历 迭代遍历 统一迭代

平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。C++中map、set、multimap,multiset的底层实现都是平衡二叉搜索树,所以map、set的增删操作时间时间复杂度是logn。## 二叉树的存储方式二叉树可以链式存储,也可以顺序存储。链式存储方式就用指针, 顺序存储的方式就是用数组。顺序存储的元素在内存是连续分布的,而链式存储则是通深度优先遍历

2023-02-28 19:50:56 238

原创 应届生春招/校招求职必备的C/C++面试题

应届生春招/校招求职必备的C/C++面试题C中static有什么作用隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和哈数都有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。C++中const有什么用const修饰的内容不可改变const参数,const返回值,const成员函数等,被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。C++中引用和指针的区别new/delete与malloc/free的区别内存分配方式智

2023-02-28 11:20:21 1301

原创 day13 239. 滑动窗口最大值 347.前 K 个高频元素 总结

第一感可能会想用一个大顶堆(优先级队列)来存放这个窗口里的k个数字,这样就可以知道最大的最大值是多少了, 但是问题是这个窗口是移动的,而大顶堆每次只能弹出最大值,我们无法移除其他数值,这样就造成大顶堆维护的不是滑动窗口里面的数值了。所以不能用大顶堆。此时我们需要一个队列,这个队列呢,放进去窗口里的元素,然后随着窗口的移动,队列也一进一出,每次移动之后,队列告诉我们里面的最大值是什么。每次窗口移动的时候,调用que.pop(滑动窗口中移除元素的数值),que.push(滑动窗口添加元素的数值),然后que.f

2023-02-27 23:09:40 199

原创 day11 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值

方法一:从栈中弹出剩余元素,此时是字符串ac,因为从栈里弹出的元素是倒序的,所以再对字符串进行反转一下,就得到了最终的结果。逆波兰表达式即后缀表达式,后缀表达式对计算机来说是非常友好的。方法二:拿字符串直接作为栈,省去了栈还要转为字符串的操作。逆波兰表达式即后缀表达式,后缀表达式对计算机来说是非常友好的。方法二:拿字符串直接作为栈,省去了栈还要转为字符串的操作。有效的括号有三种不匹配的情况:1. 第一种情况,字符串里左方向的括号多余了 ,所以不匹配。

2023-02-26 12:17:58 191

原创 day10 栈与队列理论基础 232.用栈实现队列 225. 用队列实现栈

优化:使用一个队列就够了,一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时再去弹出元素就是栈的顺序了。栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。所以STL中栈往往不被归类为容器,而被归类为container adapter(容器适配器)。用两个队列que1和que2实现队列的功能,que2其实完全就是一个备份的作用。栈和队列是STL(C++标准库)里面的两个数据结构。

2023-02-24 21:52:41 126

原创 day9 28. 实现 strStr() 459.重复的子字符串 字符串总结 双指针回顾

字符串是若干字符组成的有限序列,也可以理解为是一个字符数组,但是很多语言对字符串做了特殊的规定,接下来我来说一说C/C++中的字符串。在C语言中,把一个字符串存入一个数组时,也把结束符 '\0’存入数组,并以此作为该字符串是否结束的标志。在C++中,提供一个string类,string类会提供 size接口,可以用来判断string类字符串是否结束,就不用’\0’来判断是否结束。vector< char > 和 string 有什么区别?

2023-02-24 11:14:47 181

原创 day8 344.反转字符串541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串

首先扩充数组到每个空格替换成"%20"之后的大小。i指向新长度的末尾,j指向旧长度的末尾。思路:1. 反转区间为前n的子串2. 反转区间为n到末尾的子串3. 反转整个字符串seStr(string s, int k) { for (int i = 0; i < s.size(); i += (2 * k)) { // 1. 每隔 2k 个字符的前 k 个字符进行反转 // 2. 剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符

2023-02-22 20:52:26 313

原创 day7 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

day7 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和。首先定义 一个unordered_map,key放a和b两数之和,value 放a和b两数之和出现的次数。2. 遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中。3. 定义int变量count,用来统计 a+b+c+d = 0 出现的次数。4. 在遍历大C和大D数组,找到如果 0-(c+d) 在map中出现过的话,就用count把map中key对应的value也就是出现次数统计出来。5. 最后返

2023-02-22 16:05:53 366

原创 day6 哈希表理论基础242.有效的字母异位词349. 两个数组的交集202. 快乐数1. 两数之和

std::set和std::multiset底层实现都是红黑树,std::unordered_set的底层实现是哈希表, 使用unordered_set 读写效率是最高的,并不需要对数据进行排序,而且还不要让数据重复,所以选择unordered_set。需要定义一个多大的数组呢,定一个数组叫做record,大小为26 就可以了,初始化为0,因为字符a到字符z的ASCII也是26个连续的数值。题目中说了会 无限循环,那么也就是说求和的过程中,sum会重复出现,这对解题很重要。

2023-02-20 22:28:32 593

原创 day4 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题02.07. 链表相交 142.环形链表II

curA指向链表A的头结点,curB指向链表B的头结点,求出两个链表的长度,并求出两个链表长度的差值,然后让curA移动到和curB 末尾对齐的位置,此时我们就可以比较curA和curB是否相同,如果不相同,同时向后移动curA和curB,如果遇到curA == curB,则找到交点。双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。接下来就是交换相邻两个元素了,此时一定要画图,不画图,操作多个指针很容易乱,而且要操作的先后顺序。

2023-02-18 19:14:48 972

原创 day3 203.移除链表元素 707.设计链表 206.反转链表

移除头结点和移除其他节点的操作是不一样的,因为链表的其他节点都是通过前一个节点来移除当前节点,而头结点没有前一个节点。其实可以设置一个虚拟头结点,这样原链表的所有节点就都可以按照统一的方式进行移除了。来看看如何设置一个虚拟头。依然还是在这个链表中,移除元素1。第一种操作:直接使用原来的链表来进行移除。链表操作的两种方式:- 直接使用原来的链表来进行删除操作。- 设置一个虚拟头结点在进行删除操作。第一种操作:直接使用原来的链表来进行移除。移除头结点和移除其他节点的操作是不一样的,因为链表的其他节点

2023-02-17 19:57:52 1061

原创 day2 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵II

如果A[i] * A[i] >= A[j] * A[j] 那么result[k- -] = A[i] * A[i];如果A[i] * A[i] < A[j] * A[j] 那么result[k- -] = A[j] * A[j];定义一个新数组result,和A数组一样的大小,让k指向result数组终止位置。两个for循环,然后不断寻找符合条件的子序列,时间复杂度为O(n^2)。不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果。i指向起始位置,j指向终止位置。每个数平方之后排个序。

2023-02-17 10:09:12 1170

原创 day1 704.二分查找 27.移除元素

双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。数组元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组。慢指针:指向更新新数组下标的位置。使用二分法的前提条件:1.有序数组2.无重复元素数组元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。

2023-02-15 20:40:30 1480 2

程序员面试宝典.pdf

无论是程序员还是其他任何行业的任何职位,面试过程都大同小异,无非就是提交简历、电话面试、面谈、得到Offer 等这一系列过程。当然,这其中每一一步 都很重要!简历要写得得体、漂亮,尽量突出自己的优势,屏蔽自己的劣势。电话面试还好一-些, 因为只是电话交谈,所以您也许会更好地把握自己的语言。面谈是最关键的一步,而且如果您准备不充分的话,- -定会紧张。紧张,就有可能出现错误。不过还好,大多数面试官都可以接受面试者的紧张,只要不是太过分,问题就不大了。一般来说,中型或大型企业的面试都不止一轮,有些甚至有十几轮。就拿微软来说吧,官方渠道需要12轮面试,内部推荐也需要4轮,而且是一票否决式。就是说,有一个面试官说你不行,你就没戏了。怎么搞定所有的面试官呢?当然有很多技巧,但最重要的一.条就是:面试官是个活生生的人,他/她- -定有个人偏好,在你见到面试官时,尽可能在最短的时间内一最好是在他/她了解你之前-一了解他/她,合乎时宜地与他/她展开对话。最好是在他/她了解你之前-一了解他/她,合乎时宜地与他/她展开对话。最

2023-03-07

【实习就业必备】- 50份程序员专属简历模板.zip

程序员简历模板(应届生求职),带优质简历内容案例可在线制作,简历内容完整,HR面试通过率高,简约精美的简历设计,规整的排版更好呈现个人简历提升阅读性。适合求职者简历制作。包括 PHP 程序员简历模板、iOS 程序员简历模板、Android 程序员简历模板、Web 前端程序员简历模板、Java 程序员简历模板、C/C++ 程序员简历模板、NodeJS 程序员简历模板、架构师简历模板以及通用程序员简历模板。

2023-03-01

宠物医院管理系统设计与实现.docx

着国内经济的发展和国内生产总值的提高以及人民幸福指数的宠物的主人非常重视宠物的看病就医,于是宠物医院便应运而生。一个正规的宠物医院,一定要有一个功能齐全、操作简便的宠物医院管理系统,才能让客户放心的为宠物看病就医。 本文基于信息化的时代背景,首先对相关理论进行了广泛的搜索和整理,在此基础上运用了文献研究,观察法等研究方法,对宠物医院相关问题展开研究,意图达到完成一个方便快捷的宠物医院系统的目的。 为了解决当前的问题,一个信息管理系统设计和开发了基于MVC框架的基础上,分析比较宠物产业的现状,并对现有宠物医院信息管理系统进行了研究。该系统的集成开发环境是Eclipse,它使用MySQL作为数据库管理系统,Web服务器使用Tomcat,它使用MVC的思想,由Spring+SpringMVC+ MyBatis技术实现。本系统按照简单、清晰的思路设计了一套以宠物医院的预约与诊疗为基础的一体化信息管理系统。 本系统的实现能够极大的提高宠物医院的工作效率,实用性强,贴近宠物医院日常实际操作,为宠物医院提供了一种便捷管理日常事务的系统。该系统运行稳定,使用方便,足以满足医院对宠物信息的日常需求。

2023-02-27

CRM客户管理系统的设计与实现.docx

客户关系管理(Customer Relationship Management,CRM)系统是现代企业管理模式的一种解决方案,企业通常借助计算机软硬件集成系统,以实现其业务目标[5]。对于CRM客户管理系统来说,主要指的就是将中小型企业的经营理念作为引导,适用于企业发展的一种软件技术[6]。这套客户管理系统会将每个客户之间的关系,以及企业在销售中产生的与客户有关的各种行为都会记录下来,并给出不同类型的数据模型。为后续的决策和分析工作奠定了坚实的基础。而单纯依靠纸质化进行的信息的处理,不仅要花费大量的人力物力,而且在面对大量数据需要进行处理时,也存在着各种信息资源的使用效率低下和安全性较低等问题。而且还会浪费大量的时间,特别是在更新、统计以及归纳这些数据方面,这是一个非常耗费时间和精力的事情。因此,电子信息化的管理可以有效的解决和改善传统人工纸质化操作的问题,既可以保证快速的处理数据,又可以节约大量的人力资源。同时还能确保客户信息的安全、可靠,能够对客户信息进行迅速的查询和修正,具有以往的传统人工纸质化方法所不能及的优势。所以,客户信息管理系统是对企业进行数据信息管理方式的变革和更新的重

2023-02-27

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

TA关注的人

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