827 leetcode +网络

01背包问题的衍生题目:

对于01背包问题,只需要明白四件事,1重量是啥,2value是啥,3优化目标是啥,4约束目标是啥。

这个题目里面重量是:0,1,4,9,16。。。。

value:1,1,1,1

优化目标:最小化value

其实就是一个遍历,需要从背包容量为0,没有物品开始遍历,然后想想怎么初始化:

当选择物品0的时候,此时重量是0,需要无限的物品才能填满。所以初始化为dp(n,INT_MAX);

但是当背包为0容量则dp0 = 0。

初始化完毕,然后考虑如何更新:

dpj = min{dpj - w\[i] + vi , dpj };

cpp 复制代码
class Solution {
public:
    int numSquares(int n) {
        vector<int> dp(n+1,INT_MAX);

        //初始化
       dp[0] = 0;

        for(int i = 1; i*i <= n ; i ++)
        {
            for(int j = i*i; j <= n ; j ++)
            {
                dp[j] = min(dp[j-i*i]+1,dp[j]);
            }
        }
        
        return dp[n];
    }
};

  1. 网络七层模型都是什么?每一层的作用是什么?

答:

总体:网络七层模型是OSI提出来的一种网络模型标准,其将整个网络分为了7层

  • 应用层:这一层是直接面向使用者的比如常见的浏览器,邮件系统等等。
  • 表示层:这一层主要是明确网络的数据如何组织,比如我们常见的网页其遵循HTTP,超文本传输协议,SMTP/POP3/IMTP邮件协议,使用服务器最常用的两种FTP和SSH协议等等。
  • 会话层:会话层主要负责用户的信息验证,比如我们远程登陆一个电脑的时候就需要对方进行确认。
  • 传输层:大名鼎鼎的TCP/UDP协议,其中TCP是一种有链接的,可靠的协议。而UDP是一种无连接的,不可靠协议,控制包的发送和收取。
  • 网络层:主要是负责网路包的定位,比如IP协议,负责在互联网中定位门牌,ARP协议,将IP地址转换为MAC地址,NAT 协议将局域网的IP转换为广域网IP,比如家里面的宽带就有一个LAN口和WAN口,就是这个作用。
  • 数据链路层:这一层主要就是MAC协议,定位我们的物理网卡。
  • 物理层:光纤,等网络传输的物理设施。

1.1 为什么要网络分层?

我觉得分层这个事情是一个比较常见的解决复杂问题的手段,比如对于我们一个常见的web项目,一般来说我们分为三层:

  • Reposity:数据库
  • Service:业务
  • Controller:前后端交互

分层之后每一层都专注于做自己的事情,实现代码项目的高内聚,低耦合。

回到我们这样一个网络分层的问题来说我觉得主要有以下有点:

1.各层之间独立:每一层只需要完成自己的逻辑,并且负责实现好上下两层的接口即可。

2.提高了灵活性和可替换性:每一层都能够不断地进行优化,使用更加合理的方案,当修改某一层的功能只要实现好接口,则对于其他层来说是不可见的。

3.复杂问题简单化:将一个庞大的问题,细分为很多易于解决的小问题。

最后,我觉得这也符合计算机科学的特征即整个系统都是从上到下按照严格的层次结构设计的。

1.2 四层模型中常见的网络中,每一层都有什么样的协议

应用层: HTTP,SMTP,POP3/IMTP,FTP,Telenet,SSH,DNS

传输层:TCP,UDP

网络层:IP,ARP,NAT

  1. 从输入URL到网页返回发生了什么?

  2. 输入URL

  3. DNS解析:先查找浏览器,本地,DNS服务器缓存,没有再解析。

  4. 获得IP地址之后,形成一个连接的报文,经过TCP协议包装。

  5. 由网络层进行路由和转发找到服务器位置。

5.服务器从网络分层模型以次解包,根据HTTP报文的生产一个HTML返回

6.服务器渲染HTML

2.1 状态码有什么?

1xx"信息码,比如请求正在处理等等

2xx:成功

3xx:重定向

4xx: 客户端错误

5xx:服务器错误

  1. HTTP和HTTPS有什么区别:

  2. 浅显的来说:首先是协议不一样HTTP和HTTPS,端口不一样80 443

  3. 安全性:http,明文传播,https密文传播,现在的https采用了混合加密的方式进行通信。即先使用非对称加密传输密钥,然后通过对称加密实现了密文传输。另外,HTTPS还实现了数字签名和身份认证。

数字签名:有一份文件,先签名再用摘要算法生成摘要,然后使用私钥加密,拿到的人就可以用公钥解密这个摘要,并用摘要算法计算明文的文件,如果两个摘要一样就说明了文件被签名了。

文件被篡改:数字摘要--->私钥加密--->如果篡改就不一样了

身份认证也是一样的,不过需要CA给与发布公钥的单位可靠性保证。

相关推荐
QYRdata2 小时前
24.7%年复合增长率!工业元宇宙平台2026-2032年发展预期明确
大数据·网络·人工智能
盛世宏博智慧档案2 小时前
工程商以太网(RJ45/POE)温湿度传感器完整选型指南
网络
捷烽2 小时前
三大运营商熔接损耗验收:国家规范与0.08dB的正确理解
运维·网络·信息与通信
CHENKONG_CK2 小时前
晨控CK-FR08系列与欧姆龙NX系列PLC配置MODBUSTCP例程使用手册
网络·单片机·嵌入式硬件
Yang96112 小时前
一台顶三台:鼎讯DLJ-1在不同故障类型中的模式切换数据复盘
服务器·网络·数据库
明志数科3 小时前
具身智能数据工程全链路解析:从真实产线采集到LeRobot适配
网络·人工智能·算法
牛油果子哥q4 小时前
C++ Socket精讲:TCP/UDP套接字、客户端服务端实现、字节序、粘包拆包、简单HTTP服务、网络踩坑与面试全解
网络·c++·tcp/ip
A hao4 小时前
户外LED广告牌需要什么防护等级IP级别?
大数据·网络·图像处理·人工智能·网络协议·tcp/ip·广告
rcms152702692184 小时前
Nikon 4S013-684-1 半导体放大器模块
网络
云上工程笔记4 小时前
ELI5:如何把复杂概念自动画成图,方便写文档、做分享、带新人
运维·服务器·网络·云计算