自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【CSDN竞赛第五期】比赛小结

CSDN竞赛小节 Java算法编程题

2022-09-09 21:54:15 622 1

原创 【LeetCode刷题总结】 BFS双端队列(BFS变异题)

BFS的模板其实已经比较熟练,那么在一些题目中,还会用到BFS双端队列模板,这时候就要看什么情况当前层会遍历结束,进入到下一层。BFS双端队列1.[LeetCode6081 到达角落需要移除障碍物的最小数目](https://leetcode.cn/problems/minimum-obstacle-removal-to-reach-corner/)2.[LeetCode1368 使网格图至少有一条有效路径的最小代价](https://leetcode.cn/problems/minimum-cost-t

2022-05-29 14:26:29 453

原创 Go学习记录2-20220503

五一空闲把Go的多线程、测试、反射章节的知识快速过了一遍。初学只要求有个正确的大致理解,打好基础。下面记录下练习题和代码:请简述线程和协程(goroutine)之间的区别。协程是从主线程开启的,比线程要轻量。线程的调度由操作系统内核完成,goroutine的调度由Go自身的调用器完成,由程序员在协程的代码中显示调度,不需要进行内核上下文的切换,因此协程效率比线程高。Go协程占用的内存少,且栈空间的大小可动态伸缩,可以在Go中轻松开启上万个协程。关于channel的特性,下面说法正确的是(

2022-05-03 12:32:59 171

原创 【LeetCode刷题总结】树中的路径

五一假期发博文任务达成。LeetCode中比较像的一些题,树中的最X路径,聚类一下,纵向拓展,便于总结,举一反三。题目是刷不完的,但技能却可以在学习中一直增长。文章目录1. [LeetCode 543 二叉树的直径](https://leetcode-cn.com/problems/diameter-of-binary-tree/)2. [LeetCode 124. 二叉树中的最大路径和](https://leetcode-cn.com/problems/binary-tree-maximum-pat

2022-04-30 18:23:03 1005

原创 Go学习记录1 - 20220322

工作项目原因,最近开始学习Go语言,自学看书为主。这本比较经典:Go语言圣经 。之前有些C语言基础,Go和C\C++一样有指针这种东西,理解起来不算太难。部门的TL出了些自学练习题,第一部分覆盖了《Go语言圣经》基本语法、程序结构、基础数据类型、复合数据类型、函数、方法、接口等章节内容。题目挺好的,通过做题,熟悉Go,快速上手。翻翻资料、看看书、百度查下,也花了不少时间,把练习做出来了。骐骥一跃,不能十步,驽马十驾,功在不舍。下面记录下这些题和我的解答。字符串字面量和原始字符串字面量有什么区别?请用

2022-03-22 21:41:26 173

原创 我也是LeetCode周赛“三道题选手”啦 第270场周赛

第270场周赛小结我的Weekly Contest 270战况什么是LeetCode周赛?show my code!复盘解决Hard题我的Weekly Contest 270战况参加周赛有7次了,1928/12931应该是目前最好一次排名了,上周的周赛和双周赛也是只做对3道题,我也是LeetCode周赛“三道题选手”啦。当然,离4道全AC的大佬们还有距离。什么是LeetCode周赛?刷LeetCode两年,我才发现leetcode上的算法题一直在更新,而且更新的题目的来源就是周赛(每周4题)和双周

2021-12-05 17:05:24 5582 2

原创 博主面试阿里亲身经历合集(有面试就有更新)

【阿里一小时电面】8.13被蚂蚁金服捞起来面试,约在8.14这天,今天一看是七夕,面试官口头禅“兄弟”亲切又有力量,苦逼的心情好了点。这次的岗位是算法工程专家(跟面试官确认了下只是部门的名字叫算法工程,有做算法有做java的,岗位是P5-P7都招,所以什么“专家”的可能是阿里最近的风格又换了吧)。毕竟社招,我工作一年进步了些,面试的要求也高了。面试官其实还比较专业的,声音也婉转,想给人一种比较有素质没距离感的感觉吧,但其实过不过只是结果,他也只是面试第一步。可能觉得我有潜力,也可能觉得我不适合职位。拿

2021-07-30 20:10:29 614

原创 HTTPS协议分析(基于TLS1.3)

很多市面上的书籍对HTTPS基于的TLS协议介绍还停留在1.2的版本上,然而新的TLS1.3已经对1.2进行了很大的改进,优化了握手过程,访问速度更快;删除了(不采用)一些不安全的加密算法,安全上更强。因此,有必要结合TLS1.2来了解下基于TLS1.3的HTTPS协议。TLS 1.2握手过程TLS 1.3握手过程TLS1.2里交互过程需要2-RTT,而TLS1.3只需要1-RTT,流程如下:【第1步】客户端发送 ClientHello消息,该消息主要包括客户端支持的协议版本、会话ID、密

2021-07-04 17:04:06 3401 7

原创 【2021-5】LeetCode每日一题复盘

五月也有徽章了,表示完成了31天挑战。Week 1: May 1st - May 7thPrefix and Suffix Search题目大意:从字典中查找单词,前缀和后缀都满足查询条件。返回单词的索引,如果有多个匹配的单词,返回索引最大的;如果没有匹配的单词,返回-1.思路:构造一个map,key为 prefix+"#"+suffix, value为单词索引。遍历每个单词,每个单词的key组合有len^2种,分为put到HashMap中。查询匹配单词最大索引,就是HashMap的ge

2021-06-06 12:38:51 287 4

原创 【2021-4】LeetCode每日一题复盘

四月终于得到全勤徽章了,第一枚徽章——坚持就是胜利Week 1: April 1st - April 7thPalindrome Linked List题目大意:判断一个链表是否是回文链表思路:原地判断(时间复杂度为1)的解法:1.将链表从中间二分为两个链表2.翻转第二个链表3.判断两个链表是否相同(可能存在第一个链表比第二个链表多一个元素,只比较长度相同的部分)提示知识点:链表操作:遍历、二分、反转。代码链接:234.palindrome-linked-list.java

2021-05-05 15:16:32 499 1

原创 【2021.3】 LeetCode每日一题复盘

March 1st - March 7thAverage of Levels in Binary Tree题目大意:有一棵二叉树,返回二叉树每一层节点值的平均值的列表。思路:很自然的想到了二叉树的层序遍历。为了得到每一层节点值的平均值,要先得到节点个数和该层节点值的总和。当前层的节点个数就是一开始队列中节点的个数,内部再加一层循环,表示对当前层的遍历。提示知识点:数据结构队列定义 Queue LinkedListQueue 的基本操作: size() ,offer(),poll()入队

2021-04-02 22:05:01 261

原创 [SNMP超详解]:简介、抓包分析与编程实战

SNMP超详解背景介绍SNMP的网络管理模型SNMP的发展抓包分析与实战应用SNMP get-next-reques报文网元状态正常时,抓取的SNMP报文get操作引申一下——SNMP实战set操作基于adventNet SNMP API开发的代码背景介绍SNMP(Simple Network Management Protocol),简单网络管理协议。简单易用,是事实上的网络管理工业标准,有SNMPv1, SNMPv2c, SNMPv3三种正式版本。SNMP的网络管理模型有4个组成部分:管理节点

2021-02-06 14:46:49 5820 4

原创 Java Jdbc编程优化练习

本篇博文(以SQLServer数据库为例)回答了以下几个问题:对于JDBC的编程实践,1、如何快速向表中插入100万条不同的记录?2、如何快速删除表中所有的记录?3、对于100万条数据,如何根据组合字段快速查询出满足要求的记录。结论:1、使用PreparedStatement批处理式地插入数据,并启用事务来管理提交。需要通过调用setAutoCommit(false)把连接的提交行为改为手动提交。批处理有两重循环,当一个内循环执行完成后,将调用PreparedStatement的executeB

2020-11-12 23:13:48 567

原创 一个数字栈实现Java表达式四则运算,拓展到有括号的情况

表达式求值,支持单位正整数的加、减、乘、除运算,并支持用括号表示优先级别。表达式一定有效,且只包含正整数,结果也自动转为整数。先看一道不包含括号的类似的题:参考LeetCode227. Basic Calculator II解法:思路:1.遍历字符串,当遇到运算符或读到末尾,判断前一个运算符2.之前为+,入栈数字;之前为-,入栈相反数;之前为*或/,出栈数字计算后再入栈。3.当前运算符变为前一个运算符,继续遍历。4.遍历结束,若栈不为空,循环出栈数字求和。代码:class Soluti

2020-11-12 22:39:38 336 1

原创 Java GUI 实现一个简单的字符串转换器

用户通过界面输入一串英文字符串,然后选择所需要的转换器对输入字符串进行转换。可供选择的转换器有3个:转换为大写、转换为小写以及去除空格前缀。import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;public class StringConverterFrame { private final JFrame jf = new JFrame("字符串变换器"); private final J

2020-11-12 22:16:26 674 1

原创 CentOS上快速安装RabbitMQ

其实,在选择Linux安装RabbitMQ之前,我是放弃了Windows10安装的。发现有两个坑:1、RabbitMQ Server与Erlang的版本不匹配问题。会报错比如:failed_to_start_child这些。2、一般来说,我的User下的用户名就是中文的,不巧的是,中文的启动服务就会报错:网上有一大堆的教你怎么把中文的用户名改为英文的。一是步骤繁琐更甚者我的电脑是家庭版的,太麻烦。想想还有Linux的环境,于是就弃坑了。CentOS上快速安装RabbitMQ:步骤1:copy

2020-06-10 17:42:07 377

原创 CentOS上安装KVM虚拟机

KVM是Linux内核的模块,采用硬件辅助虚拟化技术 Intel-VT,AMD-V,KVM实现了CPU的虚拟化。QEMU工作在用户态,实现了I/O的虚拟化。当我们创建虚拟机时,使用的其实是QEMU-KVM技术。QEMU为用户态工具,模拟虚拟机的创建,KVM工作在内核态,实际完成虚拟机的创建过程。安装KVM所以,在VMware的虚拟机(实验环境)上安装运行KVM虚拟机,需要支持虚拟化 Intel-VT,AMD-V。如下图。需要勾选选项框“虚拟化Intel VT-x或AMD-V”。如果是灰色的无法勾选,那

2020-06-08 11:22:56 2157

原创 修改maven仓库地址为阿里云地址

最近学习Java组件,导入书上的代码,发现pom文件报错,代码打开一片红。大概就是网络不稳定,包依赖无法被解决一两个小时,网络都好不了。自然mvn compile也不行。甚至怀疑maven配置得有问题了。解决办法可以修改Maven的仓库地址为国内的一些公开仓库,如阿里云仓库。修改IDEA里的MAVEN3的文件是:XXX\IntelliJ IDEA Community Edition 2018.3.5\plugins\maven\lib\maven3\conf,XXX是IDEA安装路径。<

2020-06-07 19:34:03 5597

原创 Java技术基础----Java多线程和并发

转自慕课网《高薪之路–Java面试题精选集》与 JVM 一样,并发与多线程也是 Java 程序员进阶必备的知识,也几乎是中高级岗位程序员的必考题目,具有相当的深度和区分度。同样不仅用于考察候选人能否回答正确,而且还用于考察候选人对问题的理解深度 — 这类考察深度的面试题通常直接关系着候选人的定级,而定级又通常和薪资挂钩。并发也是一个很庞大的主题,专栏将多线程与并发的面试高频题精简为三方面的内容:​ 1、锁与并发;​ 2、线程与线程池;​ 3、Java 并发进阶问题;这三方面的内容分别对应接下来的三

2020-05-13 20:40:22 442

原创 笔记-2018年网络工程师软考

主要是做题后的积累总结、知识系统化明确化。2018.5上午试题名词的说法。共享密钥算法(对称加密算法),公开密钥算法(非对称加密算法)。帧长度实际从目的地址开始算。数据部分(IP报文)最长为1500字节。SNMP端口号。代理端口默认为161,管理者端口默认为162。SNMP协议实体发送请求和应答报文的默认端口号是161(管理者向代理发送请求,用的是代理的端口161)SN......

2020-02-03 21:07:28 786

原创 《程序员面试宝典》解题报告3-牛客

比较经典的题:61、63、64、65、66、67、68、69、70、72、73、76、79、80、8261、无缓存交换题目描述请编写一个函数,函数内不使用任何临时变量,直接交换两个数的值。给定一个int数组AB,其第零个元素和第一个元素为待交换的值,请返回交换后的数组。测试样例:[1,2]返回:[2,1]import java.util.*;public class Excha......

2019-12-28 22:49:32 765

原创 《程序员面试宝典》解题报告2-牛客

比较经典的一些题:31、32、37、38、40、41、44、45、46、47、48、49、50、51、52、54、56、57、58、59、6031、找出缺失的整数题目描述数组A包含了0到n的所有整数,但其中缺失了一个。对于这个问题,我们设定限制,使得一次操作无法取得数组number里某个整数的完整内容。唯一的可用操作是询问数组中第i个元素的二进制的第j位(最低位为第0位),该操作的时间复杂度......

2019-12-28 22:21:12 546

原创 《程序员面试宝典》解题报告1-牛客

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma......

2019-12-28 21:51:12 398

原创 Win10 IIS服务的安装和配置

Win10 IIS服务的安装和配置IIS(Internet Information Server)因特网信息服务器1、安装IIS服务启用或关闭Windows功能[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6kzRzoAw-1575033524357)(D:\网络工程师软考\pic\1.JPG)]​ ......

2019-11-29 21:45:19 8877

原创 【笔记】网络工程师考试

网络工程师考试2015年上半年下午第一题DMZ:隔离区,两个防火墙之间的区域。交换机根据层次型结构分类可分为:接入层交换机、汇聚层交换机、核心层交换机。交换机端口聚合。在交换机到交换机之间提供冗余的高速的连接方式。将两个设备之间多条FastEthernet或GigabitEthernet物理链路捆在一起组成一条设备间逻辑链路,从而增强带宽,提供冗余。在一个端口汇聚组中,端口号最小作为主端.........

2019-11-05 20:49:36 612

原创 华为二面手撕代码leetcode中等难度链表题

华为上合面试二面手撕代码,给一个链表和一个数,将链表分为两部分,左边部分小于x,右边部分大于或等于x,保证两部分中节点的相对顺序与之前一致。比如:Input: head = 1->4->3->2->5->2, x = 3Output: 1->2->2->4->3->5这题我四个月前AC过,做得很大意当时没细想就AC了。由于手写和面......

2019-09-23 19:48:14 12097 4

原创 java面试题(分布式篇)

1.什么是软件架构?软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。2.SOA架构和微服务架构的区别?SOA面向服务架构:是一种软件体系结构,应用程序的不同组件通过网络上的通信协议向其他组件提供服务。SOA使用WebService进行通信。微服务架构:从SOA架构发展而来,相比于SOA,服务的粒度更小。微服务使用REST进行......

2019-09-19 15:39:27 4298

原创 Java实现二叉查找树(插入、查找、遍历、删除)

class TreeNode{ int val; TreeNode left; TreeNode right; TreeNode parent; public TreeNode(int val) { this.val = val; }}class BSTree{ TreeNode root; public BS...

2019-08-14 17:42:03 444 1

原创 Java实现无向图深度优先遍历广度优先遍历

import java.util.*;/** * 图中节点值唯一标识这个节点 * */public class graphTest { static Map<Integer,LinkedList<Integer>> undirectedGraph = new LinkedHashMap<>(); static Map<Int...

2019-07-30 16:54:31 2822

原创 IP协议分析

IP首部格式TTL不同子网主机通信ICMP响应报文,IP字段的TTL值减少了3,说明目的主机到源主机的数据报经过了3个路由器。分片1、以太网数据链路层能传输的最大报文长度1500B(不包含帧头部),当超过这个MTU值时,需要对IP数据包进行分片。使用命令 ping -l 3000 10.10.87.122,-l 指定数据长度为3000bytes,抓包看到数据包被分为了3个分片,前两......

2019-07-07 12:20:57 5000

原创 ARP协议分析

ARP协议分析**ARP(Address Resolution Protocol ,地址解析协议)**是根据IP地址获取物理地址的一个TCP/IP协议。深入分析ARP工作流程同网段通信:假设主机PC1(192.168.0.102)要和PC2(192.168.0.100)通信。(1)PC1在本地ARP缓存表中检查PC2匹配的MAC地址。(2)如果PC1没有找到对应的条目,它将询问主机2的......

2019-06-15 21:31:48 1959

原创 HTTP协议分析

HTTP(HyperText Transfer Protocol,超文本传输协议),是Web服务器和客户端之间进行数据传输的规则。HTTP请求方法HTTP工作流程(1)客户端通过TCP三次握手与服务器建立连接(2)TCP建立连接成功后,向服务器发送HTTP请求。(3)服务器收到客户端的HTTP请求后,将返回应答,并向客户端发送数据(4)客户端通过TCP四次挥手,与服务器断开TCP连接......

2019-06-07 15:00:26 539

原创 DNS协议分析

DNS(Domain Name System, 域名系统)是因特网上作为域名和IP地址相互映射的一个分布式数据库,这个分布式数据库采用树型结构。通过主机名得到对应IP地址的过程叫做域名解析。DNS使用UDP协议,端口号为53。包含主机名及其所在的域名的完整地址称为FQDN,全域名。例如地址"www.abc.xyz.com",其中,"www"表示服务器的名字(大多数的网站服务器都使用该名称),“......

2019-06-03 17:19:59 4154

原创 在网鱼研发实习的一段经历

校外实践由于对实验室的云计算网络和虚拟环境安全研究不太感兴趣,也有些摸不着头脑,我也希望有一些研发的经历,为将来毕业找到适合的工作早做准备,于是我利用业余时间到校外企业参与了应用项目的研究与开发。接下来我详细说明这段实践经历。实践单位概况:上海网鱼信息科技有限公司。网鱼网咖致力于成为中国网咖业的领航者,给用户美好的体验,让更多人玩出梦想。截至目前,全球已有1000余家门店,实名注册会员超11......

2019-06-02 20:53:30 1017

原创 DHCP协议分析

DHCP协议分析DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,主要用于给内部网络和网络服务供应商自动分配IP地址。前身又称,BOOTP。DHCP使用UDP协议,有两个熟知端口:DHCP服务器为67,DHCP客户为68。DHCP分配IP地址的方式有:自动分配、动态分配和手工配置。前两种都是由DHCP服务器给客户端分配......

2019-06-01 19:55:51 6607 1

原创 ICMP协议分析

ICMP(Internet Control Message Protocol,互联网控制报文信息)ICMP用于IP主机、路由器直接传递控制信息,控制信息是指网络通不通、主机是否可达、路由是否可用等网络本身信息。ICMP不传输用户信息。ICMP安全1)死亡之ping。ICMP数据包最大尺寸不能超过64KB,死亡之ping的攻击原理就是发送超过64KB上限的ICMP数据包,使得主机内存分配出错、......

2019-05-31 20:29:08 7860

空空如也

空空如也

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

TA关注的人

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