规划
实际
10:50起床
13:20学习-14:10
14:30-15:00学习
16:50-17:30学习
19:00-19:50学习
20:10-
算法多维动态规划
c++ 多维动态规划
1. dp[i][j] 代表第i层以该节点为末尾节点的最短路径和
2. dp[0][0] 设置初始状态 ,毕竟第一行只有一个数
3. 状态转移方程:d[i][j]=min(dp[i-1][j-1],dp[i-1][j])+triangle[i][j]
上一行临近的2个中取小+triangle[i][j]就是以该节点为末尾节点的最短路径和(记得每行首尾元素只有一个相邻上行元素这种特殊情况)
class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle) {
vector<vector<int>> dp;// dp[i][j]代表第i层以为末尾节点的最短路径和
dp.push_back(triangle[0]);
for(int i=1;i<triangle.size();i++){
vector<int> vec;
for(int j=0;j<triangle[i].size();j++){
if(j>0 && j<triangle[i].size()-1){ // 不是该层的第一个和最后一个
vec.push_back( min(dp[i-1][j-1],dp[i-1][j])+triangle[i][j] );
}else if(j==0) {
vec.push_back(dp[i-1][j]+triangle[i][j]);
}else{
vec.push_back(dp[i-1][j-1]+triangle[i][j]);
}
}
dp.push_back(vec);
}
int res=INT_MAX;
for(auto &t:dp[dp.size()-1]){
res=min(res,t);
}
return res;
}
};
优化方法,其实只用记录改行的上一行就可以了,不需要每行都记录
计算机网络
有分类IP和无分类IP(CIDR)
A,B,C,D,E类IP已经成为历史
IP/主机号,是现在
方便人类看,是/
方便机器识别,是子网掩码
ARP协议
根据IP地址获取物理地址的一个TCP/IP协议
IP(网络层) 和 MAC (数据链路层)之间的区别和关系
MAC 的作用则是实现「直连」的两个设备之间通信
IP 则负责在「没有直连」的两个网络之间进行通信传输
类比:
MAC地址: 某个区间的车票
IP源地址和目标地址: 整个旅行的行程表
源IP地址和目标IP地址在传输过程中是不会变化的(前提:没有使用 NAT 网络),只有源 MAC 地址和目标 MAC 一直在变化。
广播地址用于什么?
用于在同一个链路中相互连接的主机之间发送数据包。
在本网络内广播的叫做本地广播。例如网络地址为 192.168.0.0/24 的情况下,广播地址是 192.168.0.255 。因为这个广播地址的 IP 包会被路由器屏蔽,所以不会到达 192.168.0.0/24 以外的其他链路上。
在不同网络之间的广播叫做直接广播。例如网络地址为 192.168.0.0/24 的主机向 192.168.1.255/24 的目标地址发送 IP 包。收到这个包的路由器,将数据转发给 192.168.1.0/24,从而使得所有 192.168.1.1~192.168.1.254 的主机都能收到这个包(由于直接广播有一定的安全问题,多数情况下会在路由器上设置为不转发。) 。
IMPC协议
ICMP 全称是 Internet Control Message Protocol,也就是互联网控制报文协议。
ICMP 大致可以分为两大类:
一类是用于诊断的查询消息,也就是「查询报文类型」
另一类是通知出错原因的错误消息,也就是「差错报文类型」
DHCP协议
通过 DHCP 动态获取 IP 地址,大大省去了配 IP 信息繁琐的过程。
NAT和网络地址转换 NAT
两个私有 IP 地址都转换 IP 地址为公有地址 120.229.175.121,但是以不同的端口号作为区分。
IGMP协议
IGMP 是因特网组管理协议,工作在主机(组播成员)和最后一跳路由之间,如上图中的蓝色部分。