- 博客(130)
- 收藏
- 关注
原创 栈和队列学习笔记1
第三章_栈和队列主要参考了王道的书,主要针对考研3.1栈3.1.1 栈的概述栈的定义只允许一端(栈顶top)操作,先进后出n个不同元素出栈的不同排列组合个数为(1/(n+1))C(n,2n)栈的基本操作//初始化栈void StackInit(stack& s);//判断栈空bool isEmpty(stack s);//判断栈满bool isFull(stack s);//入栈,把x元素放入栈中bool Push(stack& s, ElementTy
2022-02-09 12:57:15
442
原创 线性表学习笔记
第二章 线性表作者有话说:这笔记主要是面对研究生考试的,程序员面试也可以参考,等我有空一定把双向链表和静态链表补了,再更完第五节2.1 线性表的定义和基本操作1.线性表的定义相同数据类型的n个数据元素的有限序列a1是唯一的表头元素,an是唯一的表尾元素每个元素有一个前驱元素一个后继元素2. 线性表的特点表中的元素个数有限表中的元素具有逻辑上的顺序性表中的元素都是数据元素,每个元素都是单个元素表中的元素数据结构类型都相同,每个元素占同样大小的存储空间表中的元素具有抽象
2022-02-08 18:59:37
666
原创 java网络信息传输系统
clientimport java.io.*;import java.net.InetAddress;import java.net.Socket;import java.nio.charset.StandardCharsets;import java.util.Scanner;public class Client { public int ServerPort; Socket socket; public Client(int serverPort) th
2021-11-30 16:37:43
452
原创 网络层实验11
网络层实验实验1:获取主机IP地址判断是否可达import java.net.InetAddress;public class client { public static void main(String[] args) throws Exception { //输出主机的IP名/地址和百度的主机名/ip地址 InetAddress localAddress=InetAddress.getLocalHost(); InetAddress ba
2021-11-28 19:38:27
1769
原创 动态主机配置协议DHCP
动态主机配置协议DHCPDHCP是一个应用层协议,负责让设备能自动获取IP地址DHCP包的结构0-78-1516-2324-31操作代码硬件类型硬件长度跳数事务ID事务ID事务ID事务ID消耗时间消耗时间标志标志客户端IP地址客户端IP地址客户端IP地址客户端IP地址你的IP地址你的IP地址你的IP地址你的IP地址服务器IP地址服务器IP地址服务器IP地址服务器IP地址网关IP地址网关IP地址网关IP地
2021-11-27 10:30:52
2170
原创 用户数据报协议UDP
用户数据报协议UDPTCP是为了满足带有内在错误检测的可靠性传输,UDP协议是为了提供高速的传输。UDP是一种尽力服务,称为无连接协议,不提供可靠性传输有错误检查及重传计时UDP报头结构0-1516-31源端口目的端口数据包长度校验和源端口:用来传输数据包的端口目的端口:数据包将要被传输到的端口数据包长度:数据包的字节长度校验和:用来确保UDP头和数据到达时的完整性User Datagram Protocol, Src Port: 58539,
2021-11-26 09:53:16
1162
原创 传输控制协议TCP
传输控制协议TCP传输层协议的最终目的是为数据提供可靠的端到端传输TCP是一个面向连接的协议,因为它在传输数据之前会事先发起一个正式的连接,用来追踪数据包的递送。当传输快要结束时,他会正式关闭会话的管道TCP报头0-78-1516-2324-31源端口源端口目标端口目标端口序号序号序号序号确认号确认号确认号确认号(0-3数据偏移)(4-7保留位)标志窗口大小窗口大小校验和校验和紧急指针紧急指针选项选项选项选项
2021-11-26 09:33:03
2134
原创 ICMP协议
ICMP协议互联网控制消息协议(ICMP)协议是TCP/IP簇中的一个功能协议,负责提供在TCP/IP网络上的设备、服务以及路由器可用性的信息。ICMP是IP的一部分并且依赖IP来传递消息。ICMP头ICMP头相对较小并根据用途而改变。0-78-1516-2324-31类型代码校验和校验和可变字段可变字段可变字段可变字段类型:ICMP消息的类型代码:ICMP消息的子类型校验和:用来保证ICMP头和数据在抵达目的地时的完整性可变
2021-11-25 17:31:00
559
原创 互联网协议第六版IPv6
互联网协议第六版IPv6为什么需要IPv6呢?因为IPv4的地址只有32位,也就是只有亿级的地址空间,不够用了,需要更大的地址空间,IPv6就诞生了,IPv6有128位,地址空间大多了IPv6地址IPv6地址是128位的,用二进制表示不太方便,一般分八组,每组有16个二进制位,也就是4个十六进制位,每组之间用冒号隔开1111:aaaa:2222:bbbb:3333:cccc:4444:dddd在IPv6地址中,一些值为0的组可以忽略,但是每次只能省略一组1111:0000:2222
2021-11-25 17:19:50
675
原创 互联网协议第四版ipv4
互联网协议第四版IPv4概述ipv4协议作用:通信过程的搬运工,复杂在设备之间携带数据。路由器的作用:将两个局域网连起来。互联网就是无数局域网和路由器组成的集合Ipv4地址32位的地址,用来唯一标识连接到网络的设备,每8个二进制位为一组,可以把每组的8个二进制为转化为对应的十进制位。如11000000 10101000 00000000 00000001可以写成192.168.0.1每个ip地址都包含两部分:网络地址和主机地址。网络地址:用来标识设备所连接到的局域网(就是这个主
2021-11-25 11:28:42
3349
原创 地址解析协议ARP
地址解析协议ARP概述作用:将IP地址解析为ARP地址使用的数据包:ARP请求和ARP响应请求过程:①请求的计算机问:大家好,我的IP地址是192.168.0.1,MAC地址是f2:f2:f2:f2:f2:f2,我要找到192.168.0.101的电脑,但我不知道他的硬件地址,你们谁是192.168.0.101,把你的MAC地址告诉我。②这个数据包会被发送给网段中的所有设备,不是这个IP地址的会丢弃这个数据包,是这个IP地址的就给这台计算机发送一个响应,“你好,我是IP地址为192.
2021-11-24 16:10:09
418
原创 wireshark实战——网络基础知识
wireshark实战——网络基础知识1.抓包分析概述1.抓包:捕获和解析网络上在线传输数据的过程,目的是为了更好了解网络上发生的事情2. 数据包嗅探器:一种用于在网络媒介上捕获原始数据的工具3. 抓包的目标了解网络特征查看网络上的通信主体确认谁或是哪些应用在占用网络带宽识别网络使用高峰时间识别可能的攻击或恶意活动寻找不安全以及滥用网络资源的应用4.抓包步骤第一步:收集,手机网络线上的二进制数据,通常把网卡渲染成混杂模式来抓包,这种模式下,网络抓取一个网段上的所有网络通信量,而不
2021-11-23 09:40:14
535
原创 OSI七层参考模型
OSI七层参考模型每层的功能应用层:为用户访问网络资源提供一种手段。唯一一层能由最终用户看到的协议,因为他提供接口,是最终用户所有网络活动的基础表示层:这一层将接收到的数据转换成应用层可以读取的格式。在表示层完成的数据编码与解码取决于发送与接受数据的应用层协议。表示层同时进行用来保护数据的加密与解密等操作会话层:这一层管理两台计算机之间的对话,负责在所有通信设备之间建立、管理和终止会话连接。会话层还负责以全双工或者半双工的方式来创建会话连接,在通信主机间关闭连接,而不是以粗暴地丢弃传输层:传输层
2021-11-23 09:25:57
334
原创 计算机网络知识点
计算机网络概述计算机网络基本概念计算机网络体系结构物理层数据通信基础物理层中的传输介质物理层设备数据链路层数据链路层的功能组帧差错控制流量控制和可靠性传输介质访问控制协议局域网广域网数据链路层设备网络层路由器工作原理IP协议SDN路由选择算法LS路由选择算法DV路由选择协议OSPF路由选择协议RIP路由选择协议BGP控制报文协议ICMP网络管理SNMP运输层多路复用与多路分解UDP可靠性传输原理拥塞控制原理TCP应用层web电子邮件D
2021-11-20 14:00:33
755
原创 链路状态算法(LS)
链路状态算法(LS)1.问题描述输入:网络拓扑和链路开销输出:每个节点的到其他节点的最低开销以及路径(这里简化为只求最低开销也就是dijkstra算法)2.思路迭代次数:经过k次迭代之后,可以知道k个目的节点的最短开销路径变量说明distance(i):到算法本次迭代,从源节点到目的节点i的最低开销路径min_node 目前已知的到源节点的路径中,距离源节点最近的节点vist记录目前已经访问过的节点计算步骤首先找与开始节点最近的点 min_node然后更新最短路径。如果目的节
2021-11-20 10:32:23
1014
原创 计算机网络大纲
计算机网络概述互联网概述概念组成网络边缘通信方式客户-服务器方式p2p网络接入技术接入网物流媒体引导型非引导型网络核心功能分类性能指标吞吐量时延排队时延丢包处理时延传输时延传播时延带宽速率协议服务发展计算机网络体系结构网络分层结构五层结构及其协议各层之间的责任与联系TCP/IP参考模型ISO/OSI参考模型物理
2021-11-18 21:30:34
1115
原创 计算机网络-物理层
物理层2.1物理层的基本概念物理层解决如何在连接各种计算机的传输媒体上传输数据比特流物理层的任务描述为确定与传输媒体的接口的一些特性:机械特性:接口形状,大小,引线数目电气特性:比如规定电压范围为-5v到+5v功能特性:比如规定-5v表示0,+5v表示1过程特性:规定建立连接时各个相关部件的工作步骤2.2 数据通信的基础知识一、相关术语数据:运送消息的实体信号:数据的电气或电磁表现模拟信号:代表消息的参数的取值是连续的数字信号:代表消息的参数的取值是离散的码元:在使用时间域的波
2021-11-03 19:58:55
120
原创 计算机网络概述
计算机网络概述1.1计算机网络在信息时代的作用一、二十一世纪的特征信息化:信息交互数字化:现实的信息都可以变成电脑存储的信息网络化:包括电信网络(电话电报传真)、 计算机网络(因特网、其他网络)、有线电视网络(电视节目)二、 计算机网络的重要功能联通性:彼此联通、交换信息共享:信息共享、软硬件共享1.2 因特网概述一、网络、互联网、因特网网络:由交换机连接许多计算机互联网internet:由路由器连接许多网络因特网Internet:全球最大互联网二、网络发展的三个阶段
2021-11-03 16:35:32
147
原创 计算机组成原理概述课后习题
概述电子计算机的发展经过了哪几代?各代的特征是什么①第一代是电子管计算机,特征是以电子管为元器件;②第二代是晶体管计算机,特征是以半导体为元器件;③第三代是集成电路计算机,特征是以集成电路数字机为元器件;④第四代是大规模和超大规模集成电路计算机,特征是以大规模集成电路计算机为元器件。学了计算机有哪些应用①科学计算领域,解决科学研究和工程设计中大量的数学计算问题②工业应用领域,实时控制,计算机辅助设计,企业管理,辅助决策③商业应用领域,对数据进行记录、整理和运算④教育应用领域,远程教..
2021-10-29 21:51:09
200
原创 第三章 存储器
3存储系统这一章好乱,笔记不知道怎么整理,有空再来理一理,先考期中考3.3半导体存储器3.3.1半导体存储器RAM–易失性存储器断电之后会丢失数据存储器芯片的基本结构–>地址寄存器MAR–>存储体<—>数据寄存器<–>(时序控制逻辑)一个存储体有多个存储单元,一个存储单元有多个存储元可以同时取出来的电信号叫做存储字,存储字的长度叫做存储字长n个地址对应2^n个存储单元总容量=存储单元的个数 * 存储字长/数据线的根数存储矩阵:由大量的位存储单
2021-10-28 22:37:17
151
原创 数据的表示和运算
数据的表示和运算2.1数制与编码2.1.1进位计数制1. r进制转化为十进制r进制的数值=各数码位与位权的乘积之和2. 二进制和八进制的相互转化3位对应一个二进制位3. 二进制和十六进制的相互转化4位对应一个二进制位4. 十进制转化为r进制整数部分:除基取余法小数部分:乘基取整法5. 真值和机器数真值:实际的带正负号的数值机器数:把正负号数字化的数2.1.2 BCD码8421码①概念:四位二进制–16种状态–取其中10种状态表示一个十进制,权重分别为8421,比如9=1
2021-10-24 17:11:25
666
原创 计算机系统的概述
计算机系统的概述1.1发展历程1.1.1计算机硬件发展第一阶段**:电子管**计算机 ;第二阶段:晶体管计算机 从1960年到1964年,在计算机中采用了比电子管更先进的晶体管,晶体管比电子管小得多,不需要暖机时间,消耗能量较少,处理更迅速、更可靠。第三阶段:中小规模集成电路计算机 。第三代计算机的特点是体积更小、价格更低、可靠性更高、计算速度更快。第四阶段:大规模集成电路计算机。1.1.2计算机软件发展机器语言汇编语言高级编程语言1.1.3计算机发展方向微
2021-10-21 14:15:16
406
原创 leetcode第26题
leetcode第26题题目给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思路这题时双指
2021-09-30 16:52:13
135
原创 leetcode第860题柠檬水找零
leetcode第860题柠檬水找零题目在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5美元。注意,一开始你手头没有任何零钱。给你一个整数数组 bills ,其中 bills[i] 是第 i 位顾客付的账。如果你能给每位顾客正确找零,返回 true ,否则返回false 。来源:力扣(Le
2021-09-27 16:07:34
117
原创 leetcode第445题分发饼干
leetcode第445题分发饼干题目假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j]= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。作者:力扣 (LeetCode)链接:https://leetcode-cn.com/leetboo
2021-09-27 15:38:15
333
原创 leetcode第1024题视频拼接
leetcode第1024题视频拼接你将会获得一系列视频片段,这些片段来自于一项持续时长为 T 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。视频片段 clips[i] 都用区间进行表示:开始于 clips[i][0] 并于 clips[i][1] 结束。我们甚至可以对这些片段自由地再剪辑,例如片段 [0, 7] 可以剪切成 [0, 1] + [1, 3] + [3, 7] 三部分。我们需要将这些片段进行再剪辑,并将剪辑后的内容拼接成覆盖整个运动过程的片段([0, T])。返回所需片段的最小数
2021-09-23 16:34:38
158
原创 leetcode第1262题可被三整除的最大和
leetcode第1262题 可被三整除的最大和题目可被三整除的最大和给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。思路每个数只有选和不选两种状态,那么根据什么转移呢,因根据当前数模3之后3的余数来进行转移。dp[i][0]=到i为止被三整除的最大和dp[i][1]=到i为止除三余1的最大和dp[i][2]=到i为止除三余2的最大和当nums[i-1]%3==0时,加入当前的数字不会对除以三的结果造成影响dp[i][0]=max(dp[i-1][0],dp
2021-09-23 09:28:25
173
原创 leetcode第322题零钱兑换
给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。思路背包问题。动规分析如下:1确定dp数组以及下标的含义dp[i]=凑足总额为j所需钱币的最少个数为dp[i]2确定递推公式得到dp[i](考虑coins[j]),只有一个来源,dp[i]- coins[j]](没有考虑coins[j])。凑足总额为i - .
2021-09-22 22:07:19
197
原创 leetcode第478题 在圆内随机生成点
leetcode第478题 在圆内随机生成点方法一(不知道为啥过不了)先在半径上任意取一个点,到圆心的距离为x,然后用勾股定理,根据半径和x的值,可以算出来在从x到圆上的最大距离y_max,再在这上面随便选一个点y,然后加上原来的圆心坐标,就是所取到的点class Solution {public: double radius, x_center,y_center; Solution(double radius, double x_center, double y_center) {
2021-09-22 20:05:08
178
原创 leetcode第470题
leetcode第470题 用 Rand7() 实现 Rand10()思路只要保证1-10的数字出现概率相等就可以了可以先求0-9的概率相等,然后再加1那么只需要用rand()7凑出若干个出现概率相等的0-9的倍数的数字就行第一次想到的是从7-70里面去掉8-10,剩下11-70,然后%10就是等概率的0-9第二次优化了,变成1-49去掉1-9方法一// The rand7() API is already defined for you.// int rand7();// @retur
2021-09-22 16:10:35
166
原创 leetcode401题二进制手表
leetcode401 二进制手表思路回溯算法每一个数字有两种可能0或者1每点亮一盏灯,对应的小时数和分钟数就会改变选够n个1也就是到达了能点亮的总灯数就退出代码class Solution {public: vector<string> res; vector<string> readBinaryWatch(int turnedOn) { vector<int> track; //每一盏灯点亮
2021-09-18 16:41:14
69
原创 leetcode第46题全排列
leetcode第46题全排列思路典型的回溯问题。其实就是一道全排列问题,先确定第一个数字,再接着确定下面的数字比如[1,2,3]先确定了1,然后继续确定下面的数字这个时候已经选择过的数字就不能再选择了,所以要先检测当前加入的数字是否已经选择过这个可以新增一个数组做哈希表来查询,加入数字的时候把哈希表的值置为1,删除的时候置为0,查询对应的数字对应的值即可代码class Solution {public: vector<vector<int>> res;
2021-09-18 15:56:19
71
原创 leetcode面试08.04题,回溯算法
题目幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。输入: nums = [1,2,3]输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]说明:解集不能包含重复的子集。思路这是一道回溯算法题,可以转化为求数组内0-n个数字的全排列问题。怎么穷举全排列的呢?比方说给三个数 [1,2,3],先看0个数字,那就只要有空集再到一个数字,那就是分别取数组中的每一个数字再到两个数字求全
2021-09-18 15:19:37
129
原创 leetcode1403题
leetcode1403题 非递增顺序的最小子序列思路贪心算法从大到小依次取元素,直到取到满足条件的数组就可以排序,先求和,只需要求到一个子序列的和大于剩下元素的和,就是要求的结果class Solution {public: vector<int> minSubsequence(vector<int>& nums) { //排序,先求和,只需要求到一个子序列的和大于剩下元素的和,就是要求的结果 int n=nums.siz
2021-09-14 17:14:22
81
原创 leetcode第1282题
leetcode第1282题题目有一说一这题的中文题目太难懂了,看英文比较好懂There are n people that are split into someunknown number of groups. Each person is labeled with a unique ID from0 to n - 1.You are given an integer array groupSizes, where groupSizes[i] is thesize of the grou
2021-09-14 16:59:42
79
原创 leetcode第1221题
leetcode第1221题 分割平衡字符串贪心算法从左到右依次匹配,匹配上的话平衡字符串就+1class Solution {public: int balancedStringSplit(string s) { int n=s.size(); //存储字符,L加R减,当等于0的时候说明刚好有一组平衡字符串 int num=0; //存储平衡字符串的个数 int res=0; for
2021-09-14 10:11:04
126
原创 leetcode第55题
55跳跃游戏贪心算法如果目前循环到的坐标比你能到达的坐标大,说明这个坐标永远也到达不了,返回false只要能到第i个坐标,那前i-1个坐标都能到达,只需要已知能到达的最大坐标和前i-1个坐标为起点能到达的位置哪个更大,就可以不断更新最大坐标如果能把所有坐标都走一遍,说明能到最后一个下标class Solution {public: bool canJump(vector<int>& nums) { int can_reach=0;
2021-09-14 09:49:17
125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人