Skip to content

Commit c198250

Browse files
Merge pull request #2 from CyC2018/master
update
2 parents 67d0cda + c7bc595 commit c198250

File tree

907 files changed

+17263
-2697
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

907 files changed

+17263
-2697
lines changed

.gitattributes

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
* linguist-language=java
1+
*.md linguist-language=java

README.md

+24-36
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,31 @@
11
<div align="center">
2-
<a href="https://github.com/CyC2018/CS-Notes"> <img src="https://badgen.net/github/stars/CyC2018/CS-Notes?icon=github&color=4ab8a1"></a>
3-
<a href="other/download.md"> <img src="https://badgen.net/badge/OvO/%E7%A6%BB%E7%BA%BF%E4%B8%8B%E8%BD%BD?icon=telegram&color=4ab8a1"></a>
4-
<a href="https://cyc2018.github.io/CS-Notes"> <img src="https://badgen.net/badge/CyC/%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB?icon=sourcegraph&color=4ab8a1"></a>
2+
<a href="https://gitstar-ranking.com/repositories"> <img src="https://badgen.net/badge/Rank/20?icon=github&color=4ab8a1"></a>
3+
<a href="assets/download.md"> <img src="https://badgen.net/badge/OvO/%E7%A6%BB%E7%BA%BF%E4%B8%8B%E8%BD%BD?icon=telegram&color=4ab8a1"></a>
4+
<a href="https://cyc2018.github.io/CS-Notes"> <img src="https://badgen.net/badge/CyC/%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB?icon=sourcegraph&color=4ab8a1"></a>
5+
<a href="#微信公众号"> <img src="https://badgen.net/badge/%e5%85%ac%e4%bc%97%e5%8f%b7/CyC2018?icon=rss&color=4ab8a1"></a>
56
</div>
6-
7-
87
<br>
98

10-
| &nbsp;算法&nbsp; | 操作系统 | &nbsp;网络&nbsp; | 面向对象 | &nbsp;&nbsp;数据库&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;Java&nbsp;&nbsp;&nbsp; | 系统设计 | &nbsp;&nbsp;&nbsp;工具&nbsp;&nbsp;&nbsp; | 编码实践 | &nbsp;&nbsp;&nbsp;后记&nbsp;&nbsp;&nbsp; |
11-
| :------------------------: | :------------------------------: | :--------------------: | :--------------------: | :----------------------------------: | :--------------------------------------: | :----------------------: | :--------------------------------------: | :----------------------------------: | :--------------------------------------: |
12-
| [:pencil2:](#pencil2-算法) | [:computer:](#computer-操作系统) | [:cloud:](#cloud-网络) | [:art:](#art-面向对象) | [:floppy_disk:](#floppy_disk-数据库) | [:coffee:](#coffee-java) | [:bulb:](#bulb-系统设计) | [:wrench:](#wrench-工具) | [:watermelon:](#watermelon-编码实践) | [:memo:](#memo-后记) |
9+
| &nbsp;算法&nbsp; | 操作系统 | &nbsp;网络&nbsp;|面向对象| &nbsp;&nbsp;数据库&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;Java&nbsp;&nbsp;&nbsp;| 系统设计| &nbsp;&nbsp;&nbsp;工具&nbsp;&nbsp;&nbsp; |编码实践| &nbsp;&nbsp;&nbsp;后记&nbsp;&nbsp;&nbsp; |
10+
| :---: | :----: | :---: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
11+
| [:pencil2:](#pencil2-算法) | [:computer:](#computer-操作系统) | [:cloud:](#cloud-网络) | [:art:](#art-面向对象) | [:floppy_disk:](#floppy_disk-数据库) |[:coffee:](#coffee-java)| [:bulb:](#bulb-系统设计) |[:wrench:](#wrench-工具)| [:watermelon:](#watermelon-编码实践) |[:memo:](#memo-后记)|
1312

1413
<br>
1514

1615
<div align="center">
17-
<img src="assets/LogoMakr_0zpEzN.png" width="200px">
16+
<img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/githubio/LogoMakr_0zpEzN.png" width="200px">
1817
</div>
1918

19+
20+
2021
<br>
21-
22+
2223
## :pencil2: 算法
2324

2425
- [剑指 Offer 题解](https://github.com/CyC2018/CS-Notes/blob/master/notes/剑指%20Offer%20题解%20-%20目录.md)
2526
- [Leetcode 题解](https://github.com/CyC2018/CS-Notes/blob/master/notes/Leetcode%20题解%20-%20目录.md)
2627
- [算法](https://github.com/CyC2018/CS-Notes/blob/master/notes/算法%20-%20目录.md)
28+
- [笔试面试题库](https://www.nowcoder.com/contestRoom?from=cyc_github)
2729

2830
## :computer: 操作系统
2931

@@ -38,10 +40,10 @@
3840

3941
## :art: 面向对象
4042

41-
- [设计模式](https://github.com/CyC2018/CS-Notes/blob/master/notes/设计模式.md)
43+
- [设计模式](https://github.com/CyC2018/CS-Notes/blob/master/notes/设计模式%20-%20目录.md)
4244
- [面向对象思想](https://github.com/CyC2018/CS-Notes/blob/master/notes/面向对象思想.md)
4345

44-
## :floppy_disk: 数据库
46+
## :floppy_disk: 数据库
4547

4648
- [数据库系统原理](https://github.com/CyC2018/CS-Notes/blob/master/notes/数据库系统原理.md)
4749
- [SQL](https://github.com/CyC2018/CS-Notes/blob/master/notes/SQL.md)
@@ -78,25 +80,15 @@
7880
- [代码可读性](https://github.com/CyC2018/CS-Notes/blob/master/notes/代码可读性.md)
7981
- [代码风格规范](https://github.com/CyC2018/CS-Notes/blob/master/notes/代码风格规范.md)
8082

81-
<div align="center"><img width="580px" src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/other/公众号海报1.png"></img></div>
82-
83-
## :memo: 后记
84-
85-
### 更多内容
83+
## :memo: 后记
8684

87-
- 内推:[Job-Recommend](https://github.com/CyC2018/Job-Recommend)
88-
- 简历模版:[Markdown-Resume](https://github.com/CyC2018/Markdown-Resume)
89-
- 面经:[2018 这一年](https://www.nowcoder.com/discuss/137593)
90-
- 简历:https://cyc2018.github.io
91-
- 知乎:[CyC2018](https://www.zhihu.com/people/xiao-shi-guang-33/activities)
92-
- 小专栏:[后端面试进阶指南](https://xiaozhuanlan.com/CyC2018)
93-
- QQ 交流群:[857210598](assets/group.png)
85+
<div align="center">
86+
<a href="https://www.nowcoder.com/discuss/137593?from=cyc_github"> 我的面经 </a> / <a href="https://cyc2018.github.io"> 我的简历 </a> / <a href="https://github.com/CyC2018/Markdown-Resume"> 简历模版 </a> / <a href="https://github.com/CyC2018/Job-Recommend"> 内推 </a> / <a href="https://xiaozhuanlan.com/CyC2018"> 专栏 </a> / <a href="assets/QQ2群.png"> QQ 群</a>
87+
<br><br>
88+
<img width="320px" src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/githubio/公众号二维码-2.png"></img>
89+
</div>
9490

95-
### 工具
9691

97-
- Github Pages:[docsify](https://docsify.js.org/#/)
98-
- 绘图:[draw.io](https://www.draw.io/)
99-
- Logo:[logomakr](https://logomakr.com/)
10092

10193
### 排版
10294

@@ -106,17 +98,13 @@
10698

10799
在线排版工具:[Text-Typesetting](https://github.com/CyC2018/Text-Typesetting)
108100

109-
### 上传方案
110-
111-
为了方便将本地笔记内容上传到 Github 上,实现了一整套自动化上传方案,包括提取图片、Markdown 文档转换、Git 同步。进行 Markdown 文档转换是因为 Github 使用的 GFM 不支持 MathJax 公式和 TOC 标记,所以需要替换 MathJax 公式为 CodeCogs 的云服务和重新生成 TOC 目录。
112-
113-
GFM 转换工具:[GFM-Converter](https://github.com/CyC2018/GFM-Converter)
114-
115101
### License
116102

117-
本仓库内容 **不是** 将网上的资料随意拼凑而来,除了少部分引用书上和技术文档的原文,其余都是我的原创。在您引用本仓库内容或者对内容进行修改演绎时,请署名并以相同方式共享,谢谢。
103+
本仓库的内容不是将网上的资料随意拼凑而来,除了少部分引用书上和技术文档的原文(这部分内容都在末尾的参考链接中加了出处),其余都是我的原创。在您引用本仓库内容或者对内容进行修改演绎时,请署名并以相同方式共享,谢谢。
104+
105+
转载文章请在开头明显处标明该页面地址,公众号等其它转载请联系 [email protected]
118106

119-
转载文章请在开头明显处标明该页面地址,公众号等其它转载其联系 zhengyc101@163.com
107+
Logo:[logomakr](https://logomakr.com/)
120108

121109
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
122110

assets/QQ2群.png

56.2 KB
Loading
File renamed without changes.
File renamed without changes.
File renamed without changes.

other/download.md renamed to assets/download.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
# 如何下载
3030

31-
离线版本由公众号 **CyC2018** 发布,最新版本也会在上面及时发布,在公众号后台回复 **离线下载** 即可获取下载链接。
31+
离线版本由公众号 **CyC2018** 发布,最新版本也会在上面及时发布,在后台回复 **CyC** 即可获取下载链接。
32+
33+
<div align="center"><img width="350px" src="公众号二维码-1.png"></img></div>
3234

33-
<div align="center"><img width="600px" src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/other/QQ截图20190608120206.png"></img></div>

assets/group.png

-31 KB
Binary file not shown.

assets/公众号 海报.png

-506 KB
Binary file not shown.

assets/公众号二维码-1.png

65 KB
Loading

assets/公众号二维码.png

94.6 KB
Loading

assets/公众号海报7.png

82.7 KB
Loading

docs/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
## 🎨 面向对象
2222

23-
- [设计模式](notes/设计模式.md) </br>
23+
- [设计模式](notes/设计模式%20-%20目录1.md) </br>
2424
- [面向对象思想](notes/面向对象思想.md)
2525

2626
## 💾 数据库

docs/index.html

+36-6
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99
<meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1.0, maximum-scale=2.0, minimum-scale=1.0">
1010
<link rel="icon" href=" https://cyc-1256109796.cos.ap-guangzhou.myqcloud.com/LogoMakr_1J56bI.png">
1111
<link rel="stylesheet" href="https://cyc-1256109796.cos.ap-guangzhou.myqcloud.com/vue.css">
12+
1213
<!-- 将自定义样式放在 Github 上会导致加载速度变得非常慢,所以采取直接内嵌的方式 -->
1314
<style type="text/css">
15+
1416
/* 隐藏头部的目录 */
1517
#main>ul:nth-child(1) {
1618
display: none;
@@ -34,9 +36,14 @@
3436

3537
img,
3638
pre {
37-
border-radius: 8px;
39+
border-radius: 5px;
3840
}
3941

42+
.markdown-section p.tip,
43+
.markdown-section tr:nth-child(1n) {
44+
background-color: #f8f8f8 !important;
45+
}
46+
4047
.content,
4148
.sidebar,
4249
.markdown-section,
@@ -60,6 +67,15 @@
6067
/*font-family: Microsoft YaHei, Source Sans Pro, Helvetica Neue, Arial, sans-serif !important;*/
6168
}
6269

70+
.markdown-section pre>code {
71+
font-size: 13px;
72+
}
73+
74+
code,
75+
pre {
76+
background-color: #fff !important;
77+
}
78+
6379
.markdown-section>p {
6480
font-size: 16px !important;
6581
}
@@ -68,16 +84,26 @@
6884
font-family: Consolas, Roboto Mono, Monaco, courier, monospace !important;
6985
}
7086

87+
p, h1, h2, h3, h4, ol, ul {
88+
letter-spacing: 2px !important;
89+
}
90+
91+
p, ol, ul {
92+
line-height: 30px !important;
93+
}
94+
7195
@media (min-width:600px) {
7296
.markdown-section pre>code {
7397
font-size: .9rem !important;
98+
letter-spacing: 1.1px !important;
7499
}
75100
}
76101

77102
@media (max-width:600px) {
78103
.markdown-section pre>code {
79104
padding-top: 5px;
80105
padding-bottom: 5px;
106+
padding-left: 15px !important;
81107
}
82108

83109
pre:after {
@@ -100,7 +126,7 @@
100126

101127
.markdown-section > div > img,
102128
.markdown-section pre {
103-
box-shadow: 2px 2px 20px 6px #ddd !important;
129+
box-shadow: 0px 0px 20px 11px #eaeaea;
104130
}
105131

106132
pre {
@@ -117,10 +143,14 @@
117143

118144
@media (max-width:600px) {
119145
pre {
120-
padding-left: 0px !important;
121-
padding-right: 0px !important;
146+
padding-left: 3px !important;
147+
padding-right: 3px !important;
148+
margin-left: -20px !important;
149+
margin-right: -20px !important;
150+
box-shadow: 0px 0px 20px 0px #eee !important;
122151
}
123152

153+
124154
.docsify-copy-code-button {
125155
display: none;
126156
}
@@ -247,8 +277,8 @@
247277

248278
/*深蓝加粗*/
249279
.token.keyword {
250-
color: #124363;
251-
font-weight: bold;
280+
color: #333;
281+
font-weight: 700;
252282
}
253283

254284

docs/notes/10.1 斐波那契数列.md

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# 10.1 斐波那契数列
2+
3+
## 题目链接
4+
5+
[NowCoder](https://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3?tpId=13&tqId=11160&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github)
6+
7+
## 题目描述
8+
9+
求斐波那契数列的第 n 项,n <= 39。
10+
11+
<!--<div align="center"><img src="https://latex.codecogs.com/gif.latex?f(n)=\left\{\begin{array}{rcl}0&&{n=0}\\1&&{n=1}\\f(n-1)+f(n-2)&&{n>1}\end{array}\right." class="mathjax-pic"/></div> <br> -->
12+
13+
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/45be9587-6069-4ab7-b9ac-840db1a53744.jpg" width="330px"> </div><br>
14+
15+
## 解题思路
16+
17+
如果使用递归求解,会重复计算一些子问题。例如,计算 f(4) 需要计算 f(3) 和 f(2),计算 f(3) 需要计算 f(2) 和 f(1),可以看到 f(2) 被重复计算了。
18+
19+
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/c13e2a3d-b01c-4a08-a69b-db2c4e821e09.png" width="350px"/> </div><br>
20+
21+
递归是将一个问题划分成多个子问题求解,动态规划也是如此,但是动态规划会把子问题的解缓存起来,从而避免重复求解子问题。
22+
23+
```java
24+
public int Fibonacci(int n) {
25+
if (n <= 1)
26+
return n;
27+
int[] fib = new int[n + 1];
28+
fib[1] = 1;
29+
for (int i = 2; i <= n; i++)
30+
fib[i] = fib[i - 1] + fib[i - 2];
31+
return fib[n];
32+
}
33+
```
34+
35+
考虑到第 i 项只与第 i-1 和第 i-2 项有关,因此只需要存储前两项的值就能求解第 i 项,从而将空间复杂度由 O(N) 降低为 O(1)。
36+
37+
```java
38+
public int Fibonacci(int n) {
39+
if (n <= 1)
40+
return n;
41+
int pre2 = 0, pre1 = 1;
42+
int fib = 0;
43+
for (int i = 2; i <= n; i++) {
44+
fib = pre2 + pre1;
45+
pre2 = pre1;
46+
pre1 = fib;
47+
}
48+
return fib;
49+
}
50+
```
51+
52+
由于待求解的 n 小于 40,因此可以将前 40 项的结果先进行计算,之后就能以 O(1) 时间复杂度得到第 n 项的值。
53+
54+
```java
55+
public class Solution {
56+
57+
private int[] fib = new int[40];
58+
59+
public Solution() {
60+
fib[1] = 1;
61+
for (int i = 2; i < fib.length; i++)
62+
fib[i] = fib[i - 1] + fib[i - 2];
63+
}
64+
65+
public int Fibonacci(int n) {
66+
return fib[n];
67+
}
68+
}
69+
```
70+
71+
72+
73+
74+
75+
76+
<div align="center"><img width="320px" src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/githubio/公众号二维码-2.png"></img></div>

docs/notes/10.2 矩形覆盖.md

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# 10.2 矩形覆盖
2+
3+
## 题目链接
4+
5+
[NowCoder](https://www.nowcoder.com/practice/72a5a919508a4251859fb2cfb987a0e6?tpId=13&tqId=11163&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github)
6+
7+
## 题目描述
8+
9+
我们可以用 2\*1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2\*1 的小矩形无重叠地覆盖一个 2\*n 的大矩形,总共有多少种方法?
10+
11+
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/b903fda8-07d0-46a7-91a7-e803892895cf.gif" width="100px"> </div><br>
12+
13+
## 解题思路
14+
15+
当 n 为 1 时,只有一种覆盖方法:
16+
17+
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/f6e146f1-57ad-411b-beb3-770a142164ef.png" width="100px"> </div><br>
18+
19+
当 n 为 2 时,有两种覆盖方法:
20+
21+
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/fb3b8f7a-4293-4a38-aae1-62284db979a3.png" width="200px"> </div><br>
22+
23+
要覆盖 2\*n 的大矩形,可以先覆盖 2\*1 的矩形,再覆盖 2\*(n-1) 的矩形;或者先覆盖 2\*2 的矩形,再覆盖 2\*(n-2) 的矩形。而覆盖 2\*(n-1) 和 2\*(n-2) 的矩形可以看成子问题。该问题的递推公式如下:
24+
25+
<!-- <div align="center"><img src="https://latex.codecogs.com/gif.latex?f(n)=\left\{\begin{array}{rcl}1&&{n=1}\\2&&{n=2}\\f(n-1)+f(n-2)&&{n>1}\end{array}\right." class="mathjax-pic"/></div> <br> -->
26+
27+
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/508c6e52-9f93-44ed-b6b9-e69050e14807.jpg" width="370px"> </div><br>
28+
29+
```java
30+
public int RectCover(int n) {
31+
if (n <= 2)
32+
return n;
33+
int pre2 = 1, pre1 = 2;
34+
int result = 0;
35+
for (int i = 3; i <= n; i++) {
36+
result = pre2 + pre1;
37+
pre2 = pre1;
38+
pre1 = result;
39+
}
40+
return result;
41+
}
42+
```
43+
44+
45+
46+
47+
48+
49+
<div align="center"><img width="320px" src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/githubio/公众号二维码-2.png"></img></div>

0 commit comments

Comments
 (0)