Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit850ca73

Browse files
yanglbmeactions-user
authored andcommitted
docs: prettify code
1 parentb3bcb8d commit850ca73

File tree

10 files changed

+763
-321
lines changed

10 files changed

+763
-321
lines changed

‎README.md‎

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
###[《代码整洁之道》](/docs/clean-code.md)
2626

27-
这本书名为*Clean Code*,乃是 Object Mentor(鲍勃大叔开办的技术咨询和培训公司)一干大牛在编程方面的经验累积。写整洁代码,需要遵循大量的小技巧,贯彻刻苦习得的“整洁感”。
27+
这本书名为_Clean Code_,乃是 Object Mentor(鲍勃大叔开办的技术咨询和培训公司)一干大牛在编程方面的经验累积。写整洁代码,需要遵循大量的小技巧,贯彻刻苦习得的“整洁感”。
2828

2929
作者 Robert C. Martin 在书中阐述了代码各个方面如何做到整洁的经验与最佳实践。我们若能长期遵照这些经验编写代码,所谓“代码感”也就自然而然滋生出来。
3030

@@ -46,15 +46,15 @@
4646

4747
Doocs 技术社区,致力于打造一个内容完整、持续成长的互联网开发者学习生态圈!以下是 Doocs 旗下的一些优秀项目,欢迎各位开发者朋友持续保持关注。
4848

49-
| #| 项目| 描述| 热度|
50-
|---|---|---|---|
51-
| 1|[advanced-java](https://github.com/doocs/advanced-java)| 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。|![](https://badgen.net/github/stars/doocs/advanced-java) <br>![](https://badgen.net/github/forks/doocs/advanced-java)|
52-
| 2|[leetcode](https://github.com/doocs/leetcode)| 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解。|![](https://badgen.net/github/stars/doocs/leetcode) <br>![](https://badgen.net/github/forks/doocs/leetcode)|
53-
| 3|[source-code-hunter](https://github.com/doocs/source-code-hunter)| 互联网常用组件框架源码分析。|![](https://badgen.net/github/stars/doocs/source-code-hunter) <br>![](https://badgen.net/github/forks/doocs/source-code-hunter)|
54-
| 4|[jvm](https://github.com/doocs/jvm)| Java 虚拟机底层原理知识总结。|![](https://badgen.net/github/stars/doocs/jvm) <br>![](https://badgen.net/github/forks/doocs/jvm)|
55-
| 5|[coding-interview](https://github.com/doocs/coding-interview)| 代码面试题集,包括《剑指 Offer》、《编程之美》等。|![](https://badgen.net/github/stars/doocs/coding-interview) <br>![](https://badgen.net/github/forks/doocs/coding-interview)|
56-
| 6|[md](https://github.com/doocs/md)| 一款高度简洁的微信 Markdown 编辑器。|![](https://badgen.net/github/stars/doocs/md) <br>![](https://badgen.net/github/forks/doocs/md)|
57-
| 7|[technical-books](https://github.com/doocs/technical-books)| 值得一看的技术书籍列表。|![](https://badgen.net/github/stars/doocs/technical-books) <br>![](https://badgen.net/github/forks/doocs/technical-books)|
49+
| #| 项目| 描述| 热度|
50+
|---|-----------------------------------------------------------------|------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
51+
| 1|[advanced-java](https://github.com/doocs/advanced-java)| 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。|![](https://badgen.net/github/stars/doocs/advanced-java) <br>![](https://badgen.net/github/forks/doocs/advanced-java)|
52+
| 2|[leetcode](https://github.com/doocs/leetcode)| 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解。|![](https://badgen.net/github/stars/doocs/leetcode) <br>![](https://badgen.net/github/forks/doocs/leetcode)|
53+
| 3|[source-code-hunter](https://github.com/doocs/source-code-hunter)| 互联网常用组件框架源码分析。|![](https://badgen.net/github/stars/doocs/source-code-hunter) <br>![](https://badgen.net/github/forks/doocs/source-code-hunter)|
54+
| 4|[jvm](https://github.com/doocs/jvm)| Java 虚拟机底层原理知识总结。|![](https://badgen.net/github/stars/doocs/jvm) <br>![](https://badgen.net/github/forks/doocs/jvm)|
55+
| 5|[coding-interview](https://github.com/doocs/coding-interview)| 代码面试题集,包括《剑指 Offer》、《编程之美》等。|![](https://badgen.net/github/stars/doocs/coding-interview) <br>![](https://badgen.net/github/forks/doocs/coding-interview)|
56+
| 6|[md](https://github.com/doocs/md)| 一款高度简洁的微信 Markdown 编辑器。|![](https://badgen.net/github/stars/doocs/md) <br>![](https://badgen.net/github/forks/doocs/md)|
57+
| 7|[technical-books](https://github.com/doocs/technical-books)| 值得一看的技术书籍列表。|![](https://badgen.net/github/stars/doocs/technical-books) <br>![](https://badgen.net/github/forks/doocs/technical-books)|
5858

5959
##贡献者
6060

@@ -68,7 +68,7 @@ Doocs 技术社区,致力于打造一个内容完整、持续成长的互联
6868

6969
##公众号
7070

71-
[Doocs](https://github.com/doocs) 技术社区旗下唯一公众号「**Doocs开源社区**」​,欢迎扫码关注,**专注分享技术领域相关知识及行业最新资讯**。当然,也可以加我个人微信(备注:GitHub),拉你进技术交流群。
71+
[Doocs](https://github.com/doocs) 技术社区旗下唯一公众号「**Doocs 开源社区**」​,欢迎扫码关注,**专注分享技术领域相关知识及行业最新资讯**。当然,也可以加我个人微信(备注:GitHub),拉你进技术交流群。
7272

7373
<table>
7474
<tr>

‎_coverpage.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
>代码面试题集,包括剑指 Offer、编程之美等。
66
7-
* 记录各大互联网公司 IT 技术面试高频题
7+
- 记录各大互联网公司 IT 技术面试高频题
88

99
[GitHub](https://github.com/doocs/coding-interview/)
10-
[Get Started](#互联网公司-it-技术面试题集)
10+
[Get Started](#互联网公司-it-技术面试题集)

‎_navbar.md‎

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
1-
* 题解
2-
*[剑指Offer](docs/coding-interview.md)
3-
*[编程之美](docs/the-beauty-of-programming.md)
4-
5-
* 笔记
6-
*[代码整洁之道](docs/clean-code.md)
7-
*[阿里巴巴 Java 开发手册](docs/effective-coding.md)
8-
*[枕边算法书](docs/algorithm-stories.md)
9-
*[Effective Java](docs/effective-java.md)
10-
11-
* 页面
12-
*[封面]()
13-
*[首页](README)
14-
*[GitHub](https://github.com/yanglbme)
1+
- 题解
2+
3+
-[剑指 Offer](docs/coding-interview.md)
4+
-[编程之美](docs/the-beauty-of-programming.md)
5+
6+
- 笔记
7+
8+
-[代码整洁之道](docs/clean-code.md)
9+
-[阿里巴巴 Java 开发手册](docs/effective-coding.md)
10+
-[枕边算法书](docs/algorithm-stories.md)
11+
-[Effective Java](docs/effective-java.md)
12+
13+
- 页面
14+
-[封面]()
15+
-[首页](README)
16+
-[GitHub](https://github.com/yanglbme)

‎docs/algorithm-stories.md‎

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
55
-[“红色眼睛与褐色眼睛”谜题](#红色眼睛与褐色眼睛谜题)
66
-[找出剩下的一个数](#找出剩下的一个数)
7-
-[说出2199年7月2日是星期几](#说出2199年7月2日是星期几)
7+
-[说出 2199 年 7 月 2 日是星期几](#说出2199年7月2日是星期几)
88
-[梅森素数](#梅森素数)
99
-[杯中的水是否超过一半](#杯中的水是否超过一半)
1010

1111
##“红色眼睛与褐色眼睛”谜题
12+
1213
从前,有个小岛上只住着和尚。有些和尚的眼睛是红色的,而另一些则是褐色的。红色眼睛的和尚受到诅咒,如果得知自己的眼睛是红色的,那么当晚 12 点必须自行了断,无一例外。
1314

1415
和尚间有一条不成文的规定,就是彼此不能提起对方眼睛的颜色。小岛上没有一面镜子,也没有任何可以反射自己容貌的物体。因此,没有任何一个和尚能够得知自己眼睛的颜色。出于这些原因,每个和尚都过着幸福的日子。
@@ -46,6 +47,7 @@ if ((思考时间 > 2 分钟) || (已经知道答案了吗)) {
4647
这道题其实可以利用递归的方法。假设红眼和尚人数 N 为 10,那么我们可以适用 N 为 9 的逻辑。同理,N 为 8 或 7 时,都适用`N-1` 时的逻辑。将`N=1`,即 “只有一个红眼和尚” 视为终止条件,即可得出最终结果。这种过程与计算机算法中函数的递归调用过程完全相同。
4748

4849
##找出剩下的一个数
50+
4951
有一个能保存 99 个数值的数组`item[0], item[1],...item[98]`。从拥有`1~100` 元素的集合 {1,2,3,...,100} 中,随机抽取 99 个元素保存到数组。集合中共有 100 个元素,而数组只能保存 99 个数值,所以集合中会剩下一个元素。编写程序,找出最后剩下的数。
5052

5153
还是先花 2 分钟想一想吧。
@@ -62,7 +64,8 @@ System.out.println("最后剩下的数是:" + res);
6264

6365
如果将集合的 100 个数值累加,会得到 5050。依次从 5050 减去数组中的 99 个数值,最后的数就是没能保存到数组的那个剩余数值。也许很多读者想到了与此相近的算法。即使没有得到正确答案也不用失望,因为真正应该感到失望的人是那些没能找到答案后轻易选择放弃、想要直接查看正确答案的人。
6466

65-
##说出2199年7月2日是星期几
67+
##说出 2199 年 7 月 2 日是星期几
68+
6669
先公布答案吧,2199 年 7 月 2 日是星期二。其实可以靠运气蒙一下,准确率是 1/7。要想真正求出正确答案,过程并不简单。也许有些读者会自己设计精妙算法求出正确答案,但我还是想通过约翰•康威教授的“末日”算法进行说明。
6770

6871
末日算法虽然不是“游戏”,但在聚会中能够引起初次见面的异性的好奇。因此,为不少“花花公子”踏入数学殿堂做出了很大贡献。例如,“美丽的女士,请告诉我您的生日,让我猜猜是星期几。” “请您随便说一个年份,我会猜出当年的情人节是星期几”。虽然听起来比较肉麻,不过这样就能一下子吸引对方的注意。
@@ -110,29 +113,30 @@ boolean isLeapYear(int year) {
110113
6, 11.5, 17, 23, 28, 34, 39.5, 45, 51, 56, 62, 67.5, 73, 79, 84, 90, 95.5
111114
```
112115

113-
就是说,1900 年“末日”是星期三,那么 1906,1917,1923... “末日”也是星期三, 11.5 表示 1911 年的“末日”是星期二(-1),而1912 年的“末日”是星期四(+1)。记住这个列表,我们就能够算出所有 20 世纪年份的“末日基准”了。
116+
就是说,1900 年“末日”是星期三,那么 1906,1917,1923... “末日”也是星期三, 11.5 表示 1911 年的“末日”是星期二(-1),而 1912 年的“末日”是星期四(+1)。记住这个列表,我们就能够算出所有 20 世纪年份的“末日基准”了。
114117

115118
如果一个美丽的姑娘说“我的生日是 1992.9.13” 时,我们可以马上说出当天的星期。既然康威列表有 90 这个数字,表示 1990 年的“末日”也是星期三,那么 1901 年(平年)“末日”是星期四(+1),1902 年(闰年)“末日”是星期六(+2),所以 9.5/9.12 也是星期六,1992.9.13 就是星期日。
116119

117120
不过,**年份跨越世纪时,康威列表就会失去作用**
118121

119122
题目中问的是 2199.7.2 的星期,如果不能得知 2199 年“末日”是星期几,那么这道题很难求解。对于不同世纪的年份,没有什么特别的方法能够猜出“末日”的星期。只能将被 100 整除的年份表示为日历形式时,从中得到一些规律而已。
120123

121-
||||||||
122-
|---|---|---|---|---|---|---|
123-
| 1599|| 1600| 1601| 1602|||
124-
| 1700| 1701| 1702| 1703|| 1704| 1705|
125-
|| 1796| 1797| 1798| 1799| 1800| 1801|
124+
||||||||
125+
|----|----|----|----|----|----|----|
126+
| 1599|| 1600| 1601| 1602|||
127+
| 1700| 1701| 1702| 1703|| 1704| 1705|
128+
|| 1796| 1797| 1798| 1799| 1800| 1801|
126129
| 1897| 1898| 1899| 1900| 1901| 1902| 1903|
127-
| 1999||| 2000| 2001| 2002| 2003|
128-
| 2100| 2101| 2102| 2103|| 2104| 2105|
129-
|| 2196| 2197| 2198| 2199| 2200| 2201|
130+
| 1999||| 2000| 2001| 2002| 2003|
131+
| 2100| 2101| 2102| 2103|| 2104| 2105|
132+
|| 2196| 2197| 2198| 2199| 2200| 2201|
130133

131134
这道题看似简单,但其实不仅需要了解“末日”算法,还需要深入了解上述模式。上面的日历中,2199 年的“末日”是星期四,所以 2199.7.11/2199.7.4 也是星期四,所以 2199.7.2 是星期二。
132135

133136
感受到康威教授末日算法的精妙之处了吧。
134137

135138
##梅森素数
139+
136140
马林•梅森是法国哲学家、修道士。16 世纪,数论领域存在着一个错误的假设,而一直被认为是事实。根据这个假设,对所有素数 p,2<sup>p</sup>-1 也是素数。将素数 2,5,7 带入,结果均为负数。
137141

138142
从直观角度看,对素数 p,总有 2<sup>p</sup>-1 也是素数的假设成立。不过,仅仅通过几个结果就想判断命题真伪,这在数学中是最“无知”的行为。这种代入几个变量进行的测试往往以程序能够正常运行的“晴天”作为前提条件,如果遇到“雨天”,这种只经过松散测试的程序会发生很多意想不到的问题。算法的内部逻辑应该紧凑,不给 Bug 任何可乘之机。
@@ -150,6 +154,7 @@ boolean isLeapYear(int year) {
150154
>“如果 p 为素数时 2<sup>p</sup>-1 也是素数,那么此素数为梅森素数。”
151155
152156
##杯中的水是否超过一半
157+
153158
空房间中有个圆柱形水杯,杯口和杯底直径相同,里面有半杯左右的水。找出方法,判断杯中水超过一半还是不到一半。空荡荡的房间中没有任何可使用的器具或工具。
154159

155160
答案本身非常简单,不过能够真正求解的人却寥寥无几。想问题的时候,请不要考虑房间或水的温度,以及化学反应等“不讲理”的方法。另外,不允许喝杯子里的水。
@@ -158,4 +163,4 @@ boolean isLeapYear(int year) {
158163

159164
即使读完题没能马上想起答案,但看到插图后能够立刻明白,也可以说很有编程的感觉。将杯子倾斜,使水面刚好到达杯口时,查看杯底的水就能得出答案了。
160165

161-
算法的编写与之大体相同。各位因为找不到突破口而郁闷时,甚至会怀疑给出的问题究竟有没有解。然而找到突破口后,再回首会发现,原来解决之道竟如此简单。
166+
算法的编写与之大体相同。各位因为找不到突破口而郁闷时,甚至会怀疑给出的问题究竟有没有解。然而找到突破口后,再回首会发现,原来解决之道竟如此简单。

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp