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给与发布公钥的单位可靠性保证。

相关推荐
虹科网络安全2 小时前
Redis 安全公告:CVE-2026-81934 TLS 处理漏洞及修复建议
网络·人工智能·网络安全
小程序设计3 小时前
某师范学院网络规划与设计
网络·安全
可爱系程序猿4 小时前
WSD 打印机时好时坏:从发现服务、地址变化到 Standard TCP/IP 端口的迁移记录
网络·网络协议·tcp/ip·程序人生·电脑
蓝速科技6 小时前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
济南凡维7 小时前
CODESOFT中如何将标签保存为PDF文件
网络·人工智能·打印机·codesoft
德迅云安全杨德俊7 小时前
高防IP:构建“防护-加速-管控”三位一体的全链路安全体系
网络·安全·ddos
猫哥随身wifi7 小时前
随身WiFi 怎么选?2026 主流品牌随身 WiFi 对比与选购避坑参考
网络·人工智能·5g·智能手机
en.en..7 小时前
TCP套接字编程 完整流程解析(服务端 + 客户端)
网络
Quanqiucard8 小时前
“十五五”数字乡村建设提速,平安乡村监控物联网卡怎么选才稳定
网络·物联网
小程序设计8 小时前
5G移动网络中设备与设备通信技术研究
网络·安全