From bb1d703412d4a00daeafdc8d5b8fc59d22b18009 Mon Sep 17 00:00:00 2001
From: CyC2018 <1029579233@qq.com>
Date: Sun, 23 Sep 2018 00:56:49 +0800
Subject: [PATCH] auto commit
---
notes/Java 容器.md | 2 +-
notes/Leetcode 题解.md | 9 ++++-----
notes/Redis.md | 2 +-
notes/分布式.md | 1 -
notes/攻击技术.md | 2 +-
notes/计算机操作系统.md | 2 +-
notes/设计模式.md | 2 +-
notes/集群.md | 5 -----
8 files changed, 9 insertions(+), 16 deletions(-)
diff --git a/notes/Java 容器.md b/notes/Java 容器.md
index e42a42f0..3a7343f9 100644
--- a/notes/Java 容器.md
+++ b/notes/Java 容器.md
@@ -25,7 +25,7 @@
## Collection
-
+
### 1. Set
diff --git a/notes/Leetcode 题解.md b/notes/Leetcode 题解.md
index e128e1d3..3e19a632 100644
--- a/notes/Leetcode 题解.md
+++ b/notes/Leetcode 题解.md
@@ -2415,7 +2415,8 @@ public int climbStairs(int n) {
定义 dp 数组用来存储最大的抢劫量,其中 dp[i] 表示抢到第 i 个住户时的最大抢劫量。
由于不能抢劫邻近住户,因此如果抢劫了第 i 个住户那么只能抢劫 i - 2 或者 i - 3 的住户,所以
-dp[i] = max(dp[i-1], dp[i-2] + nums[i])
+
+
```java
public int rob(int[] nums) {
@@ -2427,7 +2428,6 @@ public int rob(int[] nums) {
}
return pre1;
}
-
```
**强盗在环形街区抢劫**
@@ -2505,9 +2505,9 @@ public int minPathSum(int[][] grid) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (i == 0) {
- if (j>0) dp[j] = dp[j - 1];
+ dp[j] = dp[j - 1];
} else {
- if (j>0) dp[j] = Math.min(dp[j - 1], dp[j]);
+ dp[j] = Math.min(dp[j - 1], dp[j]);
}
dp[j] += grid[i][j];
}
@@ -3086,7 +3086,6 @@ public int findTargetSumWays(int[] nums, int S) {
int W = (sum + S) / 2;
int[] dp = new int[W + 1];
dp[0] = 1;
- Arrays.sort(nums);
for (int num : nums) {
for (int i = W; i >= num; i--) {
dp[i] = dp[i] + dp[i - num];
diff --git a/notes/Redis.md b/notes/Redis.md
index 58320dfa..fe34c7e7 100644
--- a/notes/Redis.md
+++ b/notes/Redis.md
@@ -355,7 +355,7 @@ List 是一个双向链表,可以通过 lpop 和 lpush 写入和读取消息
## 会话缓存
-在分布式场景下具有多个应用服务器,可以使用 Redis 来统一存储这些应用服务器的会话信息。
+可以使用 Redis 来统一存储多台应用服务器的会话信息。
当应用服务器不再存储用户的会话信息,也就不再具有状态,一个用户可以请求任意一个应用服务器,从而更容易实现高可用性以及可伸缩性。
diff --git a/notes/分布式.md b/notes/分布式.md
index d2b2f974..2adba608 100644
--- a/notes/分布式.md
+++ b/notes/分布式.md
@@ -335,5 +335,4 @@ Raft 也是分布式一致性协议,主要是用来竞选主节点。
- [What is CAP theorem in distributed database system?](http://www.colooshiki.com/index.php/2017/04/20/what-is-cap-theorem-in-distributed-database-system/)
- [NEAT ALGORITHMS - PAXOS](http://harry.me/blog/2014/12/27/neat-algorithms-paxos/)
- [Paxos By Example](https://angus.nyc/2012/paxos-by-example/)
-- [ACID](https://en.wikipedia.org/wiki/ACID_(computer_science))
diff --git a/notes/攻击技术.md b/notes/攻击技术.md
index 31eeaaa4..115456cb 100644
--- a/notes/攻击技术.md
+++ b/notes/攻击技术.md
@@ -111,7 +111,7 @@ http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName
这种恶意的网址可以有很多种形式,藏身于网页中的许多地方。此外,攻击者也不需要控制放置恶意网址的网站。例如他可以将这种地址藏在论坛,博客等任何用户生成内容的网站中。这意味着如果服务器端没有合适的防御措施的话,用户即使访问熟悉的可信网站也有受攻击的危险。
-透过例子能够看出,攻击者并不能通过 CSRF 攻击来直接获取用户的账户控制权,也不能直接窃取用户的任何信息。他们能做到的,是欺骗用户浏览器,让其以用户的名义执行操作。
+通过例子能够看出,攻击者并不能通过 CSRF 攻击来直接获取用户的账户控制权,也不能直接窃取用户的任何信息。他们能做到的,是欺骗用户浏览器,让其以用户的名义执行操作。
## 防范手段
diff --git a/notes/计算机操作系统.md b/notes/计算机操作系统.md
index c0c4364e..00d26160 100644
--- a/notes/计算机操作系统.md
+++ b/notes/计算机操作系统.md
@@ -879,7 +879,7 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户
虽然无法知道将来要使用的页面情况,但是可以知道过去使用页面的情况。LRU 将最近最久未使用的页面换出。
-为了实现 LRU,需要在内存中维护一个所有页面的链表。当一个页面被访问时,将这个页面移到链表表头。这样就能保证链表表尾的页面时最近最久未访问的。
+为了实现 LRU,需要在内存中维护一个所有页面的链表。当一个页面被访问时,将这个页面移到链表表头。这样就能保证链表表尾的页面是最近最久未访问的。
因为每次访问都需要更新链表,因此这种方式实现的 LRU 代价很高。
diff --git a/notes/设计模式.md b/notes/设计模式.md
index c177ff92..e990677e 100644
--- a/notes/设计模式.md
+++ b/notes/设计模式.md
@@ -95,7 +95,7 @@ private static Singleton uniqueInstance = new Singleton();
只需要对 getUniqueInstance() 方法加锁,那么在一个时间点只能有一个线程能够进入该方法,从而避免了实例化多次 uniqueInstance。
-但是当一个线程进入该方法之后,其它试图进入该方法的线程都必须等待,即使 uniqueInstance 已经被实例化了。这会让线程阻塞时间过程,因此该方法有性能问题,不推荐使用。
+但是当一个线程进入该方法之后,其它试图进入该方法的线程都必须等待,即使 uniqueInstance 已经被实例化了。这会让线程阻塞时间过长,因此该方法有性能问题,不推荐使用。
```java
public static synchronized Singleton getUniqueInstance() {
diff --git a/notes/集群.md b/notes/集群.md
index 111495c3..cd2af078 100644
--- a/notes/集群.md
+++ b/notes/集群.md
@@ -116,11 +116,6 @@ HTTP 重定向负载均衡服务器使用某种负载均衡算法计算得到服
### 3. 反向代理服务器
-首先了解一下正向代理与反向代理的区别:
-
-- 正向代理:发生在客户端,是由用户主动发起的。比如翻墙,客户端通过主动访问代理服务器,让代理服务器获得需要的外网数据,然后转发回客户端;
-- 反向代理:发生在服务器端,用户不知道反向代理的存在。
-
反向代理服务器位于源服务器前面,用户的请求需要先经过反向代理服务器才能到达源服务器。反向代理可以用来进行缓存、日志记录等,同时也可以用来做为负载均衡服务器。
在这种负载均衡转发方式下,客户端不直接请求源服务器,因此源服务器不需要外部 IP 地址,而反向代理需要配置内部和外部两套 IP 地址。