auto commit

This commit is contained in:
CyC2018 2018-03-15 09:58:10 +08:00
parent b15d987603
commit f33bd9a5e3
5 changed files with 31 additions and 31 deletions

View File

@ -1820,7 +1820,7 @@ public int minPathSum(int[][] grid) {
定义一个数组 dp 存储上楼梯的方法数(为了方便讨论,数组下标从 1 开始dp[i] 表示走到第 i 个楼梯的方法数目。第 i 个楼梯可以从第 i-1 和 i-2 个楼梯再走一步到达,走到第 i 个楼梯的方法数为走到第 i-1 和第 i-2 个楼梯的方法数之和。
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i]=dp[i-1]+dp[i-2]"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i]=dp[i-1]+dp[i-2]"/></div> <br>
dp[N] 即为所求。
@ -1849,7 +1849,7 @@ public int climbStairs(int n) {
第 i 年成熟的牛的数量为:
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i]=dp[i-1]+dp[i-3]"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i]=dp[i-1]+dp[i-3]"/></div> <br>
**强盗抢劫**
@ -1859,7 +1859,7 @@ public int climbStairs(int n) {
定义 dp 数组用来存储最大的抢劫量,其中 dp[i] 表示抢到第 i 个住户时的最大抢劫量。由于不能抢劫邻近住户,因此如果抢劫了第 i 个住户那么只能抢劫 i - 2 和 i - 3 的住户,所以
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i]=max(dp[i-2],dp[i-3])+nums[i]"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i]=max(dp[i-2],dp[i-3])+nums[i]"/></div> <br>
O(n) 空间复杂度实现方法:
@ -1938,7 +1938,7 @@ private int rob(int[] nums, int s, int e) {
综上所述,错误装信数量方式数量为:
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i]=(i-1)*dp[i-2]+(i-1)*dp[i-1]"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i]=(i-1)*dp[i-2]+(i-1)*dp[i-1]"/></div> <br>
dp[N] 即为所求。
@ -1954,7 +1954,7 @@ dp[N] 即为所求。
因为在求 dp[n] 时可能无法找到一个满足条件的递增子序列,此时 {S<sub>n</sub>} 就构成了递增子序列,因此需要对前面的求解方程做修改,令 dp[n] 最小为 1
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[n]=max\{1,dp[i]+1|S_i<S_n\&\&i<n\}"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[n]=max\{1,dp[i]+1|S_i<S_n\&\&i<n\}"/></div> <br>
对于一个长度为 N 的序列,最长子序列并不一定会以 S<sub>N</sub> 为结尾,因此 dp[N] 不是序列的最长递增子序列的长度,需要遍历 dp 数组找出最大值才是所要的结果,即 max{ dp[i] | 1 <= i <= N} 即为所求。
@ -2050,7 +2050,7 @@ public int wiggleMaxLength(int[] nums) {
综上,最长公共子系列的状态转移方程为:
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i][j]=\left\{\begin{array}{rcl}dp[i-1][j-1]&&{S1_i==S2_j}\\max(dp[i-1][j],dp[i][j-1])&&{S1_i<>S2_j}\end{array}\right."/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i][j]=\left\{\begin{array}{rcl}dp[i-1][j-1]&&{S1_i==S2_j}\\max(dp[i-1][j],dp[i][j-1])&&{S1_i<>S2_j}\end{array}\right."/></div> <br>
对于长度为 N 的序列 S<sub>1</sub> 和 长度为 M 的序列 S<sub>2</sub>dp[N][M] 就是序列 S<sub>1</sub> 和序列 S<sub>2</sub> 的最长公共子序列长度。
@ -2087,7 +2087,7 @@ public int lengthOfLCS(int[] nums1, int[] nums2) {
综上0-1 背包的状态转移方程为:
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i][j]=max(dp[i-1][j],dp[i-1][j-w]+v)"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[i][j]=max(dp[i-1][j],dp[i-1][j-w]+v)"/></div> <br>
```java
public int knapsack(int W, int N, int[] weights, int[] values) {
@ -2111,7 +2111,7 @@ public int knapsack(int W, int N, int[] weights, int[] values) {
在程序实现时可以对 0-1 背包做优化。观察状态转移方程可以知道,前 i 件物品的状态仅由前 i-1 件物品的状态有关,因此可以将 dp 定义为一维数组,其中 dp[j] 既可以表示 dp[i-1][j] 也可以表示 dp[i][j]。此时,
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[j]=max(dp[j],dp[j-w]+v)"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?dp[j]=max(dp[j],dp[j-w]+v)"/></div> <br>
因为 dp[j-w] 表示 dp[i-1][j-w],因此不能先求 dp[i][j-w] 防止将 dp[i-1][j-w] 覆盖。也就是说要先计算 dp[i][j] 再计算 dp[i][j-w],在程序实现时需要按倒序来循环求解。

View File

@ -216,23 +216,23 @@ MySQL InnoDB 采用的是两阶段锁协议。在事务执行过程中,随时
**分解前**
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?S(Sno,Cname,Sname,Sdept,Mname)"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?S(Sno,Cname,Sname,Sdept,Mname)"/></div> <br>
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?Sno,Cname->Sname,Sdept,Mname"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?Sno,Cname->Sname,Sdept,Mname"/></div> <br>
**分解后**
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?S1(Sno,Sname,Sdept,Mname)"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?S1(Sno,Sname,Sdept,Mname)"/></div> <br>
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?Sno->Sname,Sdept,Mname"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?Sno->Sname,Sdept,Mname"/></div> <br>
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?Sdept->Mname"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?Sdept->Mname"/></div> <br>
<div align="center"> <img src="../pics//8ef22836-8800-4765-b4b8-ade80096b323.jpg"/> </div><br>
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?S2(Sno,Cname,Grade)"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?S2(Sno,Cname,Grade)"/></div> <br>
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?Sno,Cname->Grade"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?Sno,Cname->Grade"/></div> <br>
<div align="center"> <img src="../pics//b0748916-1acd-4138-b24c-69326cb452fe.jpg"/> </div><br>
@ -250,15 +250,15 @@ MySQL InnoDB 采用的是两阶段锁协议。在事务执行过程中,随时
关系模式 STC(Sname, Tname, Cname, Grade),其中四个属性分别为学生姓名、教师姓名、课程名和成绩。有以下函数依赖:
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?Sname,Cname->Tname"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?Sname,Cname->Tname"/></div> <br>
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?Sname,Cname->Grade"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?Sname,Cname->Grade"/></div> <br>
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?Sname,Tname->Cname"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?Sname,Tname->Cname"/></div> <br>
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?Sname,Tname->Grade"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?Sname,Tname->Grade"/></div> <br>
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?Tname->Cname"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?Tname->Cname"/></div> <br>
分解成 SC(Sname, Cname, Grade) 和 ST(Sname, Tname),对于 ST属性之间是多对多关系无函数依赖。

View File

@ -93,11 +93,11 @@
指数函数可以转换为线性函数,从而在函数图像上显示的更直观。例如
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?T(N)=aN^3"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?T(N)=aN^3"/></div> <br>
可以在其两端同时取对数,得到:
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?lg(T(N))=3lgN+lga"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?lg(T(N))=3lgN+lga"/></div> <br>
<div align="center"> <img src="../pics//0ed83061-9c1e-4df3-b15b-69aad5bfe9b8.png" width="800"/> </div><br>

View File

@ -723,7 +723,7 @@ void test(i) { // 尝试拿起两把筷子
举例:一个系统为某进程分配了三个物理块,并有如下页面引用序列:
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?70120304230321201701"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?70120304230321201701"/></div> <br>
进程运行时,先将 7,0,1 三个页面装入内存。当进程要访问页面 2 时,产生缺页中断,会将页面 7 换出,因为页面 7 再次被访问的时间最长。
@ -739,7 +739,7 @@ void test(i) { // 尝试拿起两把筷子
可以用栈来实现该算法,栈中存储页面的页面号。当进程访问一个页面时,将该页面的页面号从栈移除,并将它压入栈顶。这样,最近被访问的页面的页面号总是在栈顶,而最近最久未使用的页面的页面号总是在栈底。
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?47071012126"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?47071012126"/></div> <br>
<div align="center"> <img src="../pics//eb859228-c0f2-4bce-910d-d9f76929352b.png"/> </div><br>

View File

@ -161,7 +161,7 @@
主机或路由器发送数据帧所需要的时间。
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?delay=\frac{l(bit)}{v(bit/s)}"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?delay=\frac{l(bit)}{v(bit/s)}"/></div> <br>
其中 l 表示数据帧的长度v 表示发送速率。
@ -169,7 +169,7 @@
电磁波在信道中传播一定的距离需要花费的时间,电磁波传播速度接近光速。
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?delay=\frac{l(m)}{v(m/s)}"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?delay=\frac{l(m)}{v(m/s)}"/></div> <br>
其中 l 表示信道长度v 表示电磁波在信道上的传播速率。
@ -264,7 +264,7 @@ TCP/IP 协议族是一种沙漏形状中间小两边大IP 协议在其中
为每个用户分配 m bit 的码片,并且所有的码片正交,对于任意两个码片 <img src="https://latex.codecogs.com/gif.latex?\vec{S}"/><img src="https://latex.codecogs.com/gif.latex?\vec{T}"/>
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?\vec{S}\cdot\vec{T}=0"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?\vec{S}\cdot\vec{T}=0"/></div> <br>
为了方便,取 m=8设码片 <img src="https://latex.codecogs.com/gif.latex?\vec{S}"/> 为 00011011。在拥有该码片的用户发送比特 1 时就发送该码片,发送比特 0 时就发送该码片的反码 11100100。
@ -272,9 +272,9 @@ TCP/IP 协议族是一种沙漏形状中间小两边大IP 协议在其中
<div align="center"><img src="https://latex.codecogs.com/gif.latex?\frac{1}{m}\vec{S}\cdot\vec{S}=1"/></div> <br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?\frac{1}{m}\vec{S}\cdot\vec{S'}=-1"/></div> <br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?\frac{1}{m}\vec{S}\cdot\vec{S'}=-1"/></div> <br>
其中 <img src="https://latex.codecogs.com/gif.latex?\vec{S'}"/><img src="https://latex.codecogs.com/gif.latex?\vec{S}"/> 的反码。 </div><br>
其中 <img src="https://latex.codecogs.com/gif.latex?\vec{S'}"/><img src="https://latex.codecogs.com/gif.latex?\vec{S}"/> 的反码。
利用上面的式子我们知道,当接收端使用码片 <img src="https://latex.codecogs.com/gif.latex?\vec{S}"/> 对接收到的数据进行内积运算时,结果为 0 的是其它用户发送的数据,结果为 1 的是用户发送的比特 1结果为 -1 的是用户发送的比特 0。
@ -689,11 +689,11 @@ TCP 使用超时重传来实现可靠传输:如果一个已经发送的报文
一个报文段从发送再到接收到确认所经过的时间称为往返时间 RTT加权平均往返时间 RTTs 计算如下:
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?RTTs=(1-a)*(RTTs)+a*RTT"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?RTTs=(1-a)*(RTTs)+a*RTT"/></div> <br>
超时时间 RTO 应该略大于 RRTsTCP 使用的超时时间计算如下:
<div align="center"> <div align="center"><img src="https://latex.codecogs.com/gif.latex?RTO=RTTs+4*RTT_d"/></div> <br> </div><br>
<div align="center"><img src="https://latex.codecogs.com/gif.latex?RTO=RTTs+4*RTT_d"/></div> <br>
其中 RTT<sub>d</sub> 为偏差,它与新的 RRT 和 RRTs 有关。