自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树层序遍历(正向)和 Z 字形遍历

二叉树节点struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(); TreeNode(int input) : val(input), left(nullptr), right(nullptr) {}};一、二叉树正向层序遍历//二叉树层序遍历void sequence(TreeNode *root) { TreeNode *cur; queue<TreeNode *> queue_1

2021-04-15 17:17:46 564

原创 二叉树递归非递归实现三大遍历

c++实现二叉树节点struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(); TreeNode(int input) : val(input), left(nullptr), right(nullptr) {}};一、递归实现二叉树三大遍历://递归实现三种遍历void preOrderRecur(TreeNode *root) { if (root != nullptr) { cout &

2021-04-15 16:49:15 157

原创 美团笔试题练习

1.排序+遍历数组解决问题读懂题意,不要把此题想的过于复杂,由于淘汰的人数的可能取值,和临界分数 m 一一对应,所以直接遍历排序后的分数数组,并在遍历过程中判断淘汰数量和晋级数量的条件是否满足。最先遍历到满足条件的得分就是所求输出。#include<bits/stdc++.h>using namespace std;int main() { int n, x, y, temp, b; cin >> n >> x >> y; vector&lt

2021-04-11 09:34:02 1611

原创 TCP(一)、虐你千百遍的 “TCP三次握手、四次挥手” 大讲解

一、TCP基本认识01、瞧瞧TCP格式序列号: 在建立连接时由计算机生成的随机数作为其初始值,通过SYN包传给接收端主机,每发送一次数据,就【累加】一次该【数据字节数】的大小。用来解决网络包乱序问题。确认应答号: 指下一次【期望】收到的数据的序列号,发送端收到这个确认应答以后可以认为在这个序号之前的数据都已经被正常接收。用来解决不丢包问题。控制位:①ACK:该位为 1 时,【确认应答】的字段变为有效,TCP规定除了最初建立连接时的 SYN包之外该位必须设置为 1。②RST:该位为 1 时,表示

2021-03-30 23:34:52 286

原创 探究!一个数据包在网络中的心路历程(浏览器键入url—网址后,发生了什么?)

01、孤单小弟–HTTP①首先浏览器要做的就是解析URL,从而生成发送给Web服务器的请求信息。②对URL解析之后,浏览器确定了Web服务器和文件名,接下来就是根据这些信息来生成HTTP消息了。02、真实地址查询–DNS①通过浏览器解析URL并生成HTTP消息后,需要委托操作系统将消息发送给Web服务器。但在发送之前,还有一项工作要完成,那就是 查询服务器域名对应的IP地址,因为委托操作系统发送消息时,必须提供通信对象的IP地址。比如我们打电话的时候,必须要知道对方的电话号码,但由于电话号码难以记

2021-03-21 15:57:50 261

原创 Spring04:要让“它”自动装配

1. 说明Spring中bean自动装配有三种装配机制:在xml中显示配置在java中显示配置隐式的bean发现机制和自动装配Spring的自动装配需要从两个角度来实现,或者说是两个操作:组件扫描(component sacnning):spring会自动发现应用上下文中所创建的bean;自动装配(autowiring):spring自动满足bean之间的依赖,也就是我们所说的IOC/DI;2. xml装配(不推荐使用)采用autowire byName)(按名称自动装配//

2020-11-09 17:38:18 158

原创 Spring03:著名的依赖注入(DI)

1. 概念依赖注入(Dependency Injection,DI)依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配2. Set注入(构造器注入在上篇文章中)要求被注入的属性 , 必须有set方法 , set方法的方法名由set + 属性首字母大写 , 如果属性是boolean类型 , 没有set方法 , 是 is 。(1)测试pojo类(实体类)Address.java public class Add

2020-10-25 17:55:01 133

原创 Spring02:手把手搭建Spring

1. helloSpring导入jar包(spring需要导入commons-logging)进行日志记录,我们利用maven,他会自动下载对应的依赖项<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.10.RELEASE</version>

2020-10-25 15:30:08 171 1

原创 Spring01:要学会IOC思想

简介Spring : 春天 —>给软件行业带来了春天。2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。很难想象Rod Johnson的学历 , 他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术。官网 : http://spring.io/官方下载.

2020-10-25 10:48:12 119

原创 问卷调查系统搭建(一)

调查问卷系统1.项目技术数据库:MySQL8.0数据库设计软件:Power Designer16.5IDE:IDEAWeb容器:Apache Tomcat 8.5项目管理工具:Maven后端技术:Spring+Spring MVC+MyBatis(SSM框架)前端技术:LayUI(Vue/React)2.1需求整理2.2系统角色管理员:zhangsan、lisi(Admin表)管理员信息CURD制作调查问卷发布调查问卷统计调查结果图表展示访客:(无需登录)

2020-10-11 14:23:41 2163 1

原创 三大查找算法

针对无序数列(数组) //顺序查找 public static int sequenceSearch(int []arr,int key) { for (int i = 0; i < arr.length; i++) { if (arr[i] == key) { return i; } } return -1; }针对有序序列(数组),主要有二分查找...

2020-03-09 19:58:39 331 1

原创 排序算法(八)堆排序

基本思想:堆排序是一种树形选择排序,是对直接选择排序的有效改进。  堆的定义如下:  具有n个元素的序列(h1,h2,…,hn),当且仅当满足(hi>=h2i,hi>=2i+1)或(hi<=h2i,hi<=2i+1)(i=1,2,…,n/2)时称之为堆。在这里只讨论满足前者条件的堆。由堆的定义可以看出,堆顶元素(即第一个元素)必为最大项(大顶堆)。完全二叉树可以很直观地...

2020-03-09 19:55:14 162

原创 排序算法(七)基数排序(桶排序)

基本思想:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列 // 基数排序,空间换时间 public static void radixSort(int []arr) { int max = arr[0]; for (int i = 1; i < arr.l...

2020-03-09 19:53:30 202

原创 java基础高频面试题(二)

4.final在Java中的作用:final语义是不可改变的。被final修饰的类,不能够被继承;被final修饰的成员变量必须要初始化,赋初值后不能在重新赋值(可以调用对象方法修改属性值),对基本类型来说其值不可变,对引用变量来说其引用不可变,即不能在指向其他的对象;被final修饰的方法不能被重写5.final,finally,finalize()的区别:final表示最终的,不可改变的...

2020-03-07 22:12:06 130

原创 java基础高频面试题(一)

1.== 和equals的区别:是关系运算符,equals()是方法,结果都返回布尔值;Object的和equals()比较的都是地址,作用相同。==作用:基本类型,比较值是否相等;引用类型,比较内存地址值是否相等;不能比较没有父子关系的两个对象。equals()方法的作用:JDK中的类一般已经重写了equals ();比较的是内容;可以按照需求逻辑,重写对象的equals()方法(重写eq...

2020-03-07 22:08:02 228

原创 排序算法(六)快速排序

基本思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分 // 快速排序 public static void quickSort(int[] arr, int left, int right, boolean reverse) {...

2020-03-07 21:55:34 116

原创 排序算法(五)归并排序

基本思想:归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列 // 归并排序 public static void mergesort(int[] arr, int left, int right, boolean reverse) { if (left >= right ...

2020-03-07 21:50:48 128

原创 排序算法(四)希尔排序

基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。 // 希尔排序 public static void shellSort(int[] arr, boolean reverse) ...

2020-03-07 21:46:11 211

原创 排序算法(三)插入排序

基本思想:在要排序的一组数中,假设前面(n-1)[n>=2]个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序 // 插入排序 public static void insertSort(int[] arr, boolean reverse) { if (arr == null || arr.length <= ...

2020-03-07 21:44:02 148

原创 排序算法(二)选择排序

基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止 // 选择排序 public static void selectSort(int[] arr, boolean reverse) { if (arr == null || arr.length <= 1) { ret...

2020-03-07 21:42:45 274

原创 排序算法(一)冒泡排序

基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换 // 冒泡排序 public static void bubbleSort(int[] arr, boolean reverse) { if (arr == null || arr.l...

2020-03-07 21:40:37 104

原创 大数据工具:IKAnalyzer分词工具介绍与使用

简介以下简介参考前辈和项目文档介绍为什么要分词呢,当大数据处理中要提取语句的特征值,进行向量计算。所有我们要用开源分词工具把语句中的关键词提取出来IK Analyzer是什么呢,就是我们需要的这个工具,是基于java开发的轻量级的中文分词工具包。它是以开源项目Luence为主体的,结合词典分词和文法分析算法的中文分词组件。IK有很多版本,在2012版本中,IK实现了简单的分词歧义排除算...

2020-02-20 10:36:57 712

原创 亿联笔试题:题目描述 Excel是最常用的办公软件,每个单元格都有唯的地址表示,比如: 第12行第4列表示为:“D12", 第5行第255列表示为"IU5 事实上,Excel提供了两种地址表示方法,还

题目描述Excel是最常用的办公软件,每个单元格都有唯的地址表示,比如: 第12行第4列表示为:“D12", 第5行第255列表示为"IU5事实上,Excel提供了两种地址表示方法,还有一种表示法叫做RC格式地址。 第12行第4列表示为: "R12C4第5行第255列表示为"R5C255. 你的任务是:编写程序,实现从RC地址格式到常规地址格式的转换。输入描述:输入一个整数2100)表示接...

2020-02-19 09:30:40 542

原创 面向对象设计的SOLID原则

SRP (The Single Responsibility Principle ) 单一责任原则当需要修改某个类的时候原因有且只有一个(THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE)。换句话说就是让一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。OCP(The ...

2020-02-14 16:32:45 117

原创 数据库事务四大特征ACID

数据库的事务,必须支持以下特征:1. 原子性(Atomicity) 在一个事务内的操作,要么全部成功,要么全部失败。2. 一致性(Consistency) 数据库从一个一致性状态,转移到另一个一致性状态。3. 隔离性(Isolation) 多个并发的事务之间是相互隔离的4.持久性(Durability)数据一旦被提交了,则改变就是永久的...

2020-02-14 15:57:29 107

原创 TCP协议与UDP协议的异同点

1. 什么是TCP?TCP(Transmission Control Protocol,传输控制协议)是面向连接的、可靠的字节流服务,也就是说,在收发数据前,必须和对方建立可靠的连接。这一过程和打电话类似:先拨号振铃,等待对方接电话,说喂,再说自己是谁。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的传输层。2. 什么是UDP?UD...

2020-02-14 15:10:36 5109

原创 MySQL_学习笔记(5)

##视图含义:理解成一张虚拟的表视图和表的区别: 使用方式 占用物理空间 视图 完全相同 不占用,仅仅保存的是sql逻辑 表 完全相同 占用视图的好处: 1、sql语句提高重用性,效率高 2、和表实现了分离,提高了安全性###视图的创建 语法: CREATE VIEW 视图名 AS 查询语句;###视图的增删改查 1、查看视图的数据 ★ ...

2020-02-14 08:32:57 95

原创 MySQL_学习笔记(4)

##DML语言###插入语法: insert into 表名(字段名,...) values(值1,...);特点: 1、字段类型和值类型一致或兼容,而且一一对应 2、可以为空的字段,可以不用插入值,或用null填充 3、不可以为空的字段,必须插入值 4、字段个数和值的个数必须一致 5、字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致###修改修改单表...

2020-02-10 22:29:38 79

原创 MySQL_学习笔记(3)

##进阶5:分组查询 语法: select 查询的字段,分组函数 from 表 group by 分组的字段 特点: 1、可以按单个字段分组 2、和分组函数一同查询的字段最好是分组后的字段 3、分组筛选 针对的表 位置 关键字 分组前筛选: 原始表 group by的前面 where 分组后筛选: 分组后的结果集 group by的后面 having ...

2020-02-10 22:28:02 95

原创 MySQL_学习笔记(2)

###进阶2:条件查询 条件查询:根据条件过滤原始表的数据,查询到想要的数据 语法: select 要查询的字段|表达式|常量值|函数 from 表 where 条件 ; 分类: 一、条件表达式 示例:salary>10000 条件运算符: > < >= <= = != <> 二、逻辑表达式 示例:sa...

2020-02-10 22:27:20 83

原创 MySQL_学习笔记(1)

##本单元目标 一、为什么要学习数据库 二、数据库的相关概念 DBMS、DB、SQL 三、数据库存储数据的特点 四、初始MySQL MySQL产品的介绍 MySQL产品的安装 ★ MySQL服务的启动和停止 ★ MySQL服务的登录和退出 ★ MySQL的常见命令和语法规范 ...

2020-02-10 22:26:02 93

原创 剑指offer (62)

题目 : 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。思路 : 二叉搜索树的中序遍历就是从小到大排序,所以只要找到中序遍历的第K个节点即可;可以使用链表存储节点,要注意边界条件,K可能不是个有效值import java.util.ArrayList;import java.util.Arrays;pu...

2020-02-08 09:39:30 188

原创 剑指offer (61)

题目 : 请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍历顺序得...

2020-02-08 09:33:43 124

原创 剑指offer (60)

题目 :从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。思路 : 树的的广度优先遍历 法二与上题的不同在于,将两个栈变为两个队列,即实现了不同的共能,当然,在具体偶数层的时候也是不一样,前一题是变为先入右子树,再入左子树,这题则无需改变 public static ArrayList<ArrayList<Integer>> print(TreeNod...

2020-02-08 09:29:21 110

原创 剑指offer (59)

题目 : 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。思路 : 1.使用两个栈S1和S2存储奇数层和偶数层节点2.奇数层从左到右push进左右子树(出队时就可以是先右后左了)3.偶数层从右到左push进左右子树(出队时就可以是先左后右) public static ArrayList<...

2020-02-08 09:26:29 92

原创 剑指offer (57)

题目 : 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路 :(1)若该节点存在右子树:则下一个节点为右子树最左子节点(如图节点B)(2)若该节点不存在右子树:这时分两种情况:case1,该节点为父节点的左子节点,则下一个节点为其父节点(如图节点D)case2,该节点为父节点的右子节点,则沿着父节点...

2020-02-08 09:21:43 129

原创 剑指offer (56)

题目 : 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路 :简单 , 递归思路public class Solution { public ListNode deleteDuplication(ListNode pH...

2020-02-08 09:14:05 127

原创 剑指offer (55)

题目 : 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路 :设置快慢指针,都从链表头出发,快指针每次走两步,慢指针一次走一步,假如有环,一定相遇于环中某点(结论1)。接着让两个指针分别从相遇点和链表头出发,两者都改为每次走一步,最终相遇于环入口(结论2)。以下是两个结论证明:两个结论:1、设置快慢指针,假如有环,他们最后一定相遇。2、两个指针分别从链表头和...

2020-02-08 09:10:21 111

原创 剑指offer (49)

题目:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0思路 : 简单题 ,不做赘述 ,看代码注释/*(1)判断正负号,确认起始位置,设置符号标志位 * (2)从后往前遍历,过程中判断当前字符串是否合法(c<48||c>57),有一个不合法就直接返回false * (3)遍历过程中,倍数不断增加,具体细节是: * ...

2020-02-08 09:02:31 147

原创 剑指offer (51)

题目 : 给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。思路 :剑指的思路,B[i]的值可以看作下图的矩阵中每行的乘积。下三角用连乘可以很容求得,上三角,从下向上也是连乘。因此我们的思路就很清晰了,先算下三角中的连乘,即我们先算出B[i]中的一部分,然后倒过来按上...

2020-02-08 09:00:24 141

空空如也

空空如也

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

TA关注的人

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