TCP协议同样是运输层的协议,掌握TCP重点要关注这几个问题:顺序问题、丢包问题、连接维护、流量控制、拥塞控制。先解析下TCP报文段结构,相比于UDP要复杂很多。 首先还是两个端口号,对应着具体的应用进程。 序号指的是包的序号,为了解决包乱序问题。 发出去的包应该有确认,如果接收方没有收到就应该重新 ...
分类:
其他好文 时间:
2020-07-19 23:25:22
阅读次数:
70
一,Spring简介: Spring是一个开源框架,它由Rod Johnson创建;它是为了解决企业应用开发的复杂性而创建的 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架 轻量 从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB ...
分类:
编程语言 时间:
2020-07-19 23:20:46
阅读次数:
79
1. 什么是socket Socket就是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。 在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面, 对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 Soc ...
分类:
Web程序 时间:
2020-07-19 23:08:22
阅读次数:
89
https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof/ 1、题目描述: 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 2、示 ...
分类:
编程语言 时间:
2020-07-19 18:09:51
阅读次数:
388
给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。 示例 1: 输入: [1,1,2,3,3,4,4,8,8] 输出: 2 示例 2: 输入: [3,3,7,7,10,11,11] 输出: 10 注意: 您的方案应该在 O(log n)时间复杂度和 O(1)空间 ...
分类:
编程语言 时间:
2020-07-19 18:07:44
阅读次数:
74
动态开点线段树 前置芝士 众所周知,普通线段树空间复杂度是 \(O(n*4)\) 所以当n很大的时候,如果正常的去建一颗线段树,开4倍n空间显然会炸内存 怎么办呢? 这个时候,动态开点线段树出现了。 概念 ? 动态开点线段树是一类特殊的线段树,与普通的线段树不同的是,每一个节点的左右儿子不是该点编号 ...
分类:
其他好文 时间:
2020-07-19 18:01:19
阅读次数:
66
启发式合并 概念 启发式算法是基于人类的经验和直观感觉,对一些算法的优化。 作用 可以启发式合并更加高级的数据结构,如 \(heap,~set,~splays\) 等 复杂度计算 每次把个数少的合并到个数多的?复杂度 \(O(min(m1,m2))\) 可是我们注意到,每次合并后个数为合并前少的部分 ...
分类:
其他好文 时间:
2020-07-19 18:00:25
阅读次数:
69
离散化 蒟蒻因为即将学习主席树,发现离散化这个东东不太会,所以写一篇博客记录一下。 概念 离散化,就是把无限空间中有限的个体映射到有限的空间中去,以提高算法的时空效率。(来自百度百科) 作用 ? 很多算法的复杂度与数据中的最大值有关,比如树状数组和纯用数组实现的一对一标记。时常会遇到这种情况:数据的 ...
分类:
其他好文 时间:
2020-07-19 17:58:05
阅读次数:
58
树状数组 部分转自Xenny 前置芝士 什么是树状数组 用数组来模拟树形结构 可解决问题 解决大部分基于区间上的更新以及求和问题 和线段树的区别 树状数组可以解决的问题都可以用线段树解决,但是树状数组码量小,系数少(很多) 优点和缺点 修改和查询的复杂度都是O(logN),而且相比线段树系数要少很多 ...
分类:
编程语言 时间:
2020-07-19 17:57:33
阅读次数:
66
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], target = ...
分类:
编程语言 时间:
2020-07-19 16:33:02
阅读次数:
61