Skip to content
Open

1 #1

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2294 commits
Select commit Hold shift + click to select a range
0032bbd
653-Week 08
jelychow Dec 7, 2019
7d01057
313-Week 08
varluffy Dec 7, 2019
c553c02
string to integer atoi
xuetrdi Dec 7, 2019
5ddecd1
first unique character in a string
xuetrdi Dec 7, 2019
47e253c
update code
xuetrdi Dec 7, 2019
265c71b
home work 05&08
Dec 7, 2019
5c94f8f
198-Week 08
reven404 Dec 7, 2019
68a42d4
Merge branch 'master' of github.com:reven404/algorithm004-03
reven404 Dec 7, 2019
631c1fb
create 151
donnyfang Dec 7, 2019
3153ed8
create 8
donnyfang Dec 7, 2019
62e4d98
create 72
donnyfang Dec 7, 2019
1518d01
create 746
donnyfang Dec 7, 2019
4297e97
create 300
donnyfang Dec 7, 2019
9319a60
create 387
donnyfang Dec 7, 2019
8c8f40a
commit
Dec 8, 2019
4171a4e
Merge branch 'master' of https://github.com/vera0707/algorithm004-03
Dec 8, 2019
5ead8b8
Merge pull request #2 from algorithm004-03/master
gning Dec 8, 2019
87000ba
Merge pull request #9 from algorithm004-03/master
EasonFeng5870 Dec 8, 2019
06b5fdf
第八周作业
northleafup Dec 8, 2019
6f4b185
week08 homework
EasonFeng5870 Dec 8, 2019
e69abe7
Submit homework for week 8
X-Perseverance Dec 8, 2019
398042d
Week02_643
StarpoSeven Dec 8, 2019
c8480e9
Merge pull request #1 from algorithm004-03/master
kylefeng Dec 8, 2019
43dca7e
183-Week08
sun1723 Dec 8, 2019
2196b73
318-Week 08
tynecastle Dec 8, 2019
e9a6f78
add Week 08
isaaczhou Dec 8, 2019
33783e2
Merge pull request #1 from algorithm004-03/master
yangliang20065613 Dec 8, 2019
ab57938
408-Week 08
Dec 8, 2019
3357c4f
698号学员第8周作业提交。
gning Dec 8, 2019
b414d5c
longest increasing subsequence
xuetrdi Dec 8, 2019
38ab02f
Merge pull request #3 from algorithm004-03/master
applesun8799 Dec 8, 2019
bbb28ec
week 08
onwl007 Dec 8, 2019
42333dd
108-Week 08
applesun8799 Dec 8, 2019
fa2fe9a
613 Week08
zkf1317 Dec 8, 2019
363c323
Merge pull request #1 from algorithm004-03/master
hanxiantao Dec 8, 2019
01107a8
homework of week08
Joeylu-master Dec 8, 2019
656cd14
第8周作业提交
Dec 8, 2019
f5cb487
Merge pull request #3 from algorithm004-03/master
CDoubleX Dec 8, 2019
13ba3fe
358 week-08
MickWang Dec 8, 2019
162b58b
week08-homework
kali-allen Dec 8, 2019
d501aca
Merge pull request #1 from algorithm004-03/master
adieUkid Dec 8, 2019
c4cc1e6
Update NOTE.md
X-Perseverance Dec 8, 2019
918461c
add
Dec 8, 2019
37fe7cb
Merge pull request #7 from algorithm004-03/master
houseme Dec 8, 2019
36bbf9d
143-Week 08
nextRainbow Dec 8, 2019
8212364
提交第八周的学习习题和学习总结
Dec 8, 2019
e5b3cde
Week08-138
Dec 8, 2019
823b283
573-Week 08
Dec 8, 2019
0e68bdb
443-Week 08
moods445 Dec 8, 2019
3268515
Merge pull request #1 from algorithm004-03/master
simpleman594 Dec 8, 2019
d64f040
Merge pull request #2 from algorithm004-03/master
JasperStardream Dec 8, 2019
037677a
week08
Dec 8, 2019
b71f813
commit
whl-1998 Dec 8, 2019
c3943d4
Create LeetCode_541_508.cpp
tengteng-github Dec 8, 2019
89ff97d
Create LeetCode_387_508.cpp
tengteng-github Dec 8, 2019
b3ce533
Merge pull request #3 from algorithm004-03/master
jerryoung Dec 8, 2019
c9d21aa
373-Week 08
Dayu0501 Dec 8, 2019
cbd69e8
328-Week08
Dec 8, 2019
11cc15b
Create leetcode_58_188.go
wwwangxc Dec 8, 2019
f4178ce
Create leetcode_72_188.go
wwwangxc Dec 8, 2019
2791aea
Merge branch 'master' of https://github.com/tsregll/algorithm004-03
Dec 8, 2019
e315be3
Merge pull request #2 from algorithm004-03/master
hongbaotong Dec 8, 2019
858a915
Create leetcode_387_188.go
wwwangxc Dec 8, 2019
c37ec69
Create leetcode_709_188.go
wwwangxc Dec 8, 2019
c1ad249
Create leetcod_771_188.go
wwwangxc Dec 8, 2019
036195f
Create leetcode_33_188.go
wwwangxc Dec 8, 2019
a37d31a
Create leetcode_62_188.go
wwwangxc Dec 8, 2019
c899105
Create leetcode_63_188.go
wwwangxc Dec 8, 2019
d39d86c
Create LeetCode_1143_683.java
Markmu Dec 8, 2019
3287d75
Create LeetCode_72_683.java
Markmu Dec 8, 2019
67a89a7
503-Week 08
Dec 8, 2019
f9a213c
init
Dec 8, 2019
227d9ea
393-Week 08
boyiren Dec 8, 2019
f58ae6f
提交第8周作业
Dec 8, 2019
c99c2f3
week08 homework
Dec 8, 2019
961d686
588-Week 08
Dec 8, 2019
287e2dc
593-Week 08
jerryoung Dec 8, 2019
0323b81
第八周练习题
Dec 8, 2019
7291f02
delete week 08
Dec 8, 2019
85754b8
Merge pull request #1 from algorithm004-03/master
Carryours Dec 8, 2019
70aec3f
Merge pull request #1 from algorithm004-03/master
jpxsf Dec 8, 2019
489741e
588-Week 08
jpxsf Dec 8, 2019
4008df4
Merge pull request #1 from algorithm004-03/master
YJWell Dec 8, 2019
366940b
week08 homework
Dec 8, 2019
c8c045e
648-Week 08
taosun-18 Dec 8, 2019
7974df5
338-Week 08
LeeSenSen Dec 8, 2019
5cd4858
013-Week 08
kanghaov Dec 8, 2019
1ba8337
053-Week 07
rongsimin Dec 8, 2019
cfe481c
Week 08 Homework
hongbaotong Dec 8, 2019
35bb7bc
Create Week 08
lephome Dec 8, 2019
cad84d5
Delete Week 08
lephome Dec 8, 2019
f5b2e40
023-Week 08
daybreakcold Dec 8, 2019
32276a4
Add files via upload
fanrupin Dec 8, 2019
cba69e9
week08_543
simpleman594 Dec 8, 2019
faaf30d
433-Week 08
adieUkid Dec 8, 2019
d5a1209
Add files via upload
lephome Dec 8, 2019
a0c3439
submits homework for Week 8
orange-ma Dec 8, 2019
60eb96f
243 Week08 homework
eazonshaw Dec 8, 2019
09d9e0b
Week 08 homeworks
YJWell Dec 8, 2019
33b5c64
Create test
lephome Dec 8, 2019
43366c5
Delete LeeCode_300_428.java
lephome Dec 8, 2019
4723021
Delete LeeCode_387_428.java
lephome Dec 8, 2019
0019a39
Delete NOTE.md
lephome Dec 8, 2019
327358a
Add files via upload
lephome Dec 8, 2019
085c532
Delete test
lephome Dec 8, 2019
063a148
第八周
Dec 8, 2019
2c53418
第八周作业提交
Carryours Dec 8, 2019
78bc7fd
Merge pull request #1 from algorithm004-03/master
yang1626 Dec 8, 2019
ea6f55e
143-Week 08
nextRainbow Dec 8, 2019
bafa189
week08
yang1626 Dec 8, 2019
ae22309
第六周补觉
Dec 8, 2019
9e0d1a1
maximal-rectangle.cpp
zsc319 Dec 8, 2019
8ac8808
week08-418
toothlou Dec 8, 2019
6816769
Week01
simpleman594 Dec 8, 2019
997e4f4
reverse-words-in-a-string.cpp

zsc319 Dec 8, 2019
092b97b
maximal-rectangle.cpp
zsc319 Dec 8, 2019
66c6e8a
Add files via upload
losewalker Dec 8, 2019
8cce21c
update: homework week 08
Wincher Dec 8, 2019
6a240a1
658-Week 08
jaymengxy Dec 8, 2019
17958db
week 8 homeworks
CDoubleX Dec 8, 2019
ea22d55
Create Leetcode_300_278.js
harveyzhang Dec 8, 2019
83f8f10
Create Leetcode_5_278.py
harveyzhang Dec 8, 2019
f368c3d
Rename Leetcode_5_278.py to Leetcode_5_278.js
harveyzhang Dec 8, 2019
0e3825c
083-Week 08
fyang21117 Dec 9, 2019
d576865
083-Week 08
fyang21117 Dec 9, 2019
58fa76b
work: add week 07 jobs
voiddme Dec 9, 2019
00a9b9b
713-Week 08需要从源上拉取
Dec 9, 2019
50b20d9
Merge pull request #3 from algorithm004-03/master
robinhoodzz Dec 9, 2019
06cf530
713-Week 08
Dec 9, 2019
eee13de
homework of week 05
Joeylu-master Dec 9, 2019
aede1ba
Create LeetCode_8.go
xstudio Dec 9, 2019
8b993c5
Create LeetCode_917.go
xstudio Dec 9, 2019
77eb2ba
Delete workspace.xml
kelly422 Dec 9, 2019
5d9320d
Merge pull request #1399 from tanmotop/master
kelly422 Dec 9, 2019
a519e42
Merge pull request #1400 from rongsimin/master
kelly422 Dec 9, 2019
e2c9e72
Merge pull request #1401 from daybreakcold/master
kelly422 Dec 9, 2019
05ba7d0
Merge pull request #1403 from fanrupin/master
kelly422 Dec 9, 2019
5479bd0
Merge pull request #1404 from adieUkid/master
kelly422 Dec 9, 2019
1ac79b9
Merge pull request #1408 from orange-ma/master
kelly422 Dec 9, 2019
7cb26e2
Merge pull request #1410 from eazonshaw/master
kelly422 Dec 9, 2019
9c2cabc
Merge pull request #1412 from YJWell/master
kelly422 Dec 9, 2019
fb2e079
Merge pull request #1417 from ConserveLee/master
kelly422 Dec 9, 2019
a9c7ff6
Merge pull request #1419 from Carryours/master
kelly422 Dec 9, 2019
0b79f2b
Merge pull request #1421 from yang1626/master
kelly422 Dec 9, 2019
3deb3ac
Merge pull request #1423 from loujiangguo/master
kelly422 Dec 9, 2019
10bd34e
Merge pull request #1424 from simpleman594/master
kelly422 Dec 9, 2019
d23a0f8
Merge pull request #1371 from Markmu/master
kelly422 Dec 9, 2019
9e9365a
Merge pull request #1375 from ldpcoding/master
kelly422 Dec 9, 2019
be81950
Merge pull request #1378 from boyiren/master
kelly422 Dec 9, 2019
6b817a5
Merge pull request #1379 from HappyLK/master
kelly422 Dec 9, 2019
93d31bb
Merge pull request #1380 from jpxsf/master
kelly422 Dec 9, 2019
7bc5324
Merge pull request #1382 from kylefeng/master
kelly422 Dec 9, 2019
303653b
Merge pull request #1383 from jerryoung/master
kelly422 Dec 9, 2019
fcf5e18
Merge pull request #1353 from moods445/master
kelly422 Dec 9, 2019
db5d68b
Merge pull request #1355 from zuoxiaodong0815/master
kelly422 Dec 9, 2019
243c695
Merge pull request #1357 from whl-1998/master
kelly422 Dec 9, 2019
ec6ee2d
Merge pull request #1358 from tengteng-github/master
kelly422 Dec 9, 2019
bf50805
Merge pull request #1359 from kyiln/master
kelly422 Dec 9, 2019
f814bb1
Merge pull request #1363 from Dayu0501/master
kelly422 Dec 9, 2019
38f1118
Delete LeeCode_300_428.java
lephome Dec 9, 2019
836e29d
Delete LeeCode_387_428.java
lephome Dec 9, 2019
6e2d543
Merge pull request #1364 from xingChen-w/188
kelly422 Dec 9, 2019
90e0a33
Delete NOTE.md
lephome Dec 9, 2019
d0f14c0
Merge pull request #3 from algorithm004-03/master
lephome Dec 9, 2019
c8bf747
Merge pull request #1388 from kanghaov/master
kelly422 Dec 9, 2019
a069fc2
Merge pull request #1389 from wwt3010/master
kelly422 Dec 9, 2019
a8b97cf
Merge pull request #1280 from tsregll/master
kelly422 Dec 9, 2019
0222b42
Merge pull request #1281 from SPTLTY/master
kelly422 Dec 9, 2019
21a3a6d
Merge pull request #1282 from HaoWangCold/master
kelly422 Dec 9, 2019
9b20083
Merge pull request #1335 from Joeylu-master/master
kelly422 Dec 9, 2019
0f4f3ce
Merge pull request #1338 from MickWang/master
kelly422 Dec 9, 2019
ee13878
Merge pull request #1340 from gatfreess/master
kelly422 Dec 9, 2019
e11acbc
Merge pull request #1342 from X-Perseverance/master
kelly422 Dec 9, 2019
f1b1d4f
Update NOTE.md
lephome Dec 9, 2019
d8442ad
Merge pull request #1346 from nextRainbow/master
kelly422 Dec 9, 2019
9283994
Merge pull request #1347 from zhengxin12345/master
kelly422 Dec 9, 2019
5e916e8
Add files via upload
lephome Dec 9, 2019
7d9b07b
Merge pull request #1349 from ISeeYouTomorrow/master
kelly422 Dec 9, 2019
3c6605a
Merge pull request #1352 from houseme/master
kelly422 Dec 9, 2019
a4a952f
Merge pull request #1366 from hxt970311/master
kelly422 Dec 9, 2019
1321d76
Merge pull request #1370 from xingChen-w/week05
kelly422 Dec 9, 2019
92e39ba
Merge pull request #1384 from WSnowRLeaf/master
kelly422 Dec 9, 2019
7949763
Merge pull request #1391 from taosun-18/master
kelly422 Dec 9, 2019
d59b512
Merge pull request #1429 from losewalker/master
kelly422 Dec 9, 2019
10c8eca
Merge pull request #1430 from Wincher/master
kelly422 Dec 9, 2019
3d84e08
Merge pull request #1432 from jaymengxy/master
kelly422 Dec 9, 2019
be3fc5f
Merge pull request #1434 from cestlennie-immoc/master
kelly422 Dec 9, 2019
1b8856c
Merge pull request #1435 from HarveyZhang/master
kelly422 Dec 9, 2019
681a5d9
Merge pull request #1436 from fyang21117/master
kelly422 Dec 9, 2019
a808c29
Merge pull request #1438 from voiddme/work/voiddme-Week-08
kelly422 Dec 9, 2019
6b0f107
Merge pull request #1297 from jelychow/master
kelly422 Dec 9, 2019
4c042e9
Merge pull request #1299 from varluffy/master
kelly422 Dec 9, 2019
f75ae50
Merge pull request #1301 from xuetrdi/master
kelly422 Dec 9, 2019
87dca4d
Merge pull request #1292 from Quantum-Ran/master
kelly422 Dec 9, 2019
7ec02cb
Merge pull request #1296 from celery94/master
kelly422 Dec 9, 2019
3da6791
Merge pull request #1303 from Anthony-byte/master
kelly422 Dec 9, 2019
dd13ab3
Merge pull request #1304 from reven404/master
kelly422 Dec 9, 2019
1cafa77
Merge pull request #1306 from fangqingsong/master
kelly422 Dec 9, 2019
aaaf10e
Merge pull request #1309 from northleafup/master
kelly422 Dec 9, 2019
ed51743
Merge pull request #1329 from onwl007/master
kelly422 Dec 9, 2019
ef9adde
Merge pull request #1283 from xiaohaowudi/master
kelly422 Dec 9, 2019
6bdf9e5
Merge pull request #1285 from kelvin4587/master
kelly422 Dec 9, 2019
8aa244a
Merge pull request #1287 from aaayoungman/master
kelly422 Dec 9, 2019
dcf9924
Merge pull request #1291 from flamencoy/master
kelly422 Dec 9, 2019
2830edb
Merge pull request #1310 from EasonFeng5870/master
kelly422 Dec 9, 2019
e88cf5b
Merge pull request #1314 from StarpoSeven/643_week_02
kelly422 Dec 9, 2019
bebe6aa
Merge pull request #1318 from SPTLTY/master
kelly422 Dec 9, 2019
fa768a4
Merge pull request #1319 from tynecastle/master
kelly422 Dec 9, 2019
694621d
Merge pull request #1323 from yangliang20065613/master
kelly422 Dec 9, 2019
8fe6e76
Merge pull request #1325 from gning/master
kelly422 Dec 9, 2019
7eac8b6
Merge pull request #1444 from lephome/master
kelly422 Dec 9, 2019
91c99c1
Merge pull request #1333 from applesun8799/master
kelly422 Dec 9, 2019
92a24ec
Merge pull request #1321 from isaaczhou/master
kelly422 Dec 9, 2019
66e2329
删除note文件
Dec 9, 2019
08be242
Merge branch 'master' of https://github.com/vera0707/algorithm004-03
Dec 9, 2019
24d24e7
reset
Dec 9, 2019
401c386
Merge pull request #1395 from vera0707/master
kelly422 Dec 9, 2019
08c34f0
maximal-rectangle.cpp
zsc319 Dec 9, 2019
a05cb63
reverse-words-in-a-string.cpp
zsc319 Dec 9, 2019
b10141a
353-Week 08
hypnus2066 Dec 9, 2019
64319e3
Merge pull request #1454 from nana0739ice/master
kelly422 Dec 10, 2019
143e8e2
Delete maximal-rectangle.cpp
zsc319 Dec 10, 2019
f4b1800
Delete reverse-words-in-a-string.cpp

zsc319 Dec 10, 2019
73fdac8
Merge pull request #1294 from LiaoMingzhi/master
kelly422 Dec 10, 2019
5751d5d
Merge pull request #1455 from zsc319/master
kelly422 Dec 10, 2019
4c2ddbb
613 Week08
zkf1317 Dec 10, 2019
89a4517
613 Week08
zkf1317 Dec 10, 2019
48c5628
Merge pull request #1456 from gislzhang/master
kelly422 Dec 10, 2019
e5a2f0a
643-Week 08
StarpoSeven Dec 10, 2019
a65337d
add
Dec 10, 2019
6d7b896
338-Week 08
LeeSenSen Dec 10, 2019
2708cf4
第8周作业
curtishang Dec 1, 2019
99dd438
Merge branch 'master' of https://github.com/curtishang/algorithm004-03
curtishang Dec 10, 2019
6d20dc2
Merge pull request #5 from algorithm004-03/master
curtishang Dec 10, 2019
6a3bd41
Merge pull request #4 from algorithm004-03/master
HaoWangCold Dec 11, 2019
b03f841
Week08_Leetcode_387_917
HaoWangCold Dec 11, 2019
c33ceba
Merge pull request #1343 from tyler-liushulong/master
kelly422 Dec 12, 2019
03c3d20
Merge pull request #1440 from robinhoodzz/master
kelly422 Dec 12, 2019
d03c5df
Merge pull request #1441 from xstudio/master
kelly422 Dec 12, 2019
b9643e6
Merge pull request #1445 from LeeSenSen/master
kelly422 Dec 12, 2019
39cf55b
Merge pull request #1457 from StarpoSeven/master
kelly422 Dec 12, 2019
91a14e1
Merge pull request #1458 from curtishang/master
kelly422 Dec 12, 2019
3e0103d
Merge pull request #1462 from HaoWangCold/master
kelly422 Dec 12, 2019
0ab3b26
008-Week 08
FastLight126 Dec 14, 2019
af42bcc
053-Week 08
rongsimin Dec 15, 2019
178f0ba
Add files via upload
daybreakcold Dec 15, 2019
6e8cdb9
Add files via upload
daybreakcold Dec 15, 2019
b41176b
Merge pull request #1480 from FastLight126/master
kelly422 Dec 23, 2019
ac4f86d
Merge pull request #1492 from rongsimin/master
kelly422 Dec 23, 2019
b66aeef
Merge pull request #1509 from daybreakcold/master
kelly422 Dec 23, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# 极客大学「算法训练营第四期 - 3 班」作业提交仓库

## 讲师课件下载地址

请大家通过该链接查看讲师课件并进行下载:链接:https://pan.baidu.com/s/1uoU_2toXHYw_eQOHMpogfQ 密码:94kd


## 仓库目录结构说明

Expand All @@ -24,4 +28,4 @@

## 注意事项
1. **作业公布地址:** 我们会在置顶的 issue 中公布当周的算法练习题以及其他注意事项。
2. 如果对 Git 和 GitHub 不太了解,请参考 [Git 官方文档](https://git-scm.com/book/zh/v2) 或者极客时间的[《玩转 Git 三剑客》](https://time.geekbang.org/course/intro/145)视频课程。
2. 如果对 Git 和 GitHub 不太了解,请参考 [Git 官方文档](https://git-scm.com/book/zh/v2) 或者极客时间的[《玩转 Git 三剑客》](https://time.geekbang.org/course/intro/145)视频课程。从来没用过github的学员看这里的git_quick_guide,或许会对你有帮助奥。https://github.com/algorithm004-01/algorithm004-01/tree/master/Utils
59 changes: 59 additions & 0 deletions Week 01/id_003/189_rotateArrav.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
//方法一 暴力法
var rotate = function(nums, k) {
let previous;
for (let i = 0; i < k; i++) {
previous = nums[nums.length - 1];
for ( let j = 0; j < nums.length; j++ ){
[nums[j],previous]=[previous,nums[j]];
}
}
};
//方法2 辅助空间
var rotate = function(nums, k) {
let previous;
for (let i = 0; i < k; i++) {
previous = nums[nums.length - 1];
for ( let j = 0; j < nums.length; j++ ){
[nums[j],previous]=[previous,nums[j]];
}
}
};

//方法3 使用环状替换

var rotate = function(nums, k) {
k %= nums.length;
let start = 0;
for(let count = 0; count < nums.length; count++){
let current = start;
let prev = nums[start];
do{
let next = (current + k) % nums.length;
let temp = nums[next];
nums[next] = prev;
prev = temp;
current = next;
count++;
}while(start != current)
}

}

//方法4 反转数组法
var rotate = function(nums, k) {
k %= nums.length;
revrse(nums, 0, nums.length -1);
revrse(nums, 0, k - 1);
revrse(nums, k - 1, nums.length -1);
}

var revrse = function(nums, start, end) {
while ( start < end ) {
let temp = nums[start];
nums[start] = nums[ennd];
nums[end] = temp;
start++;
end--;
}
}

12 changes: 12 additions & 0 deletions Week 01/id_003/26removeDuplicates.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
var removeDuplicates = function(nums) {
if (nums.length == 0) return 0;
var i = 0;
var j = 1;
nums.map((item,index,arr)=>{
if( item !== nums[i] ) {
i++;
nums[i] = item;
}
})
return i+1;
};
66 changes: 65 additions & 1 deletion Week 01/id_003/NOTE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,68 @@
# NOTE
## 学习总结


1. 数组:[源码](http://developer.classpath.org/doc/java/util/ArrayList-source.html)
在内存中是连续的地址,访问时间非常快。
插入(insert)操作O(n):元素插入时,将插入的位置之后的元素全部向后移动一个位置,再放入该元素
删除(delete)操作O(n):元素删除时,拿出该元素,后面的元素都向前移一个位置
不适合增加删除
查看(lookup)O(1)

2. Linked List[源码](https://www.geeksforgeeks.org/implementing-a-linked-list-in-java-using-class/) [Linked List 示例代码](http://www.cs.cmu.edu/~adamchik/15-121/lectures/Linked%20Lists/code/LinkedList.java)
通过链表实现的空间不连续的结构
增加(prepend、append)、删除(delete)操作、插入操作(insert):O(1)的复杂度 newnode.next = Node.next, Node.next = newNode,
查找(lookup)操作:O(n);

3. skip List(跳表)
运用于Redis,为了补足链表的缺陷而设计出来的。加速的中心思想(升维,空间换时间)
跳表查询的时间复杂度分析O(logn)
n/2、n/4、n/8、第k级索引节点的个数就是n/(2^k)
假设索引有h级,最高级的索引有2个结点。n/(2^h) = 2,从而求得h = log2(n) - 1

跳表的空间复杂度分析O(n):
原始链表大小为n,每2个结点抽1个,每层索引的结点数:
n/2、n/4,n/8,...,8,4,2
原始俩表大小为n,每3个结点抽1个,每层索引的结点数:
n/3、n/9,n/27,...,9,3,1
空间复杂度O(n)
实际应用:
1. [LRU Cache - Linked list](https://leetcode-cn.com/problems/lru-cache/)
2. [Redis - Skip List](https://www.zhihu.com/question/20202931)

4. 栈
stack: 先入后出;添加、删除O(1),查询O(n)
5. 队列
Queue: 先入后出;添加、删除O(1),查询O(n)
Deque: 添加、删除O(1),查询O(n)
[Priority Queue](http://fuseyism.com/classpath/doc/java/util/PriorityQueue-source.html): 插入操作O(1),取出操作:O(logN)-按照元素的优先级取出,底层具体实现的数据结构较为多样和复杂:heap、bst、treap

## 源码分析

### Queue

通过分析[Queue源码](http://fuseyism.com/classpath/doc/java/util/Queue-source.html)学习到以下几点。
1. Queue在java中定义为接口
2. 它的方法有
add(E e)、offer(E e)、remove()、poll()、element()、peek()
add、offer:用于添加元素
remove: 删除队头元素,当要移除的元素为空时抛出异常
poll: 删除队头元素,当要移除的元素为空时返回null
element: 检索队头元素,为空时返回异常
peek: 检索队头元素,为空时返回null
### PriorityQueue
关于PriorityQUeue源码没看太懂,但是其手册内容关于这些方法的介绍看了一些
通过分析[PriorityQueue](http://fuseyism.com/classpath/doc/java/util/PriorityQueue-source.html)学习到以下几点。
1. PriorityQueue继承自AbstractQueue实现了Serializable定义的接口
2. 它的方法有:
add(E e)、clear()、comparator()、contains(Object c)、iterator()、offer()、remove(Object o)、spliterator()、toArray()、toArray(T[] a)
add(E e):将指定的元素插入此优先级队列。
clear():删除优先队列中的所有元素。
comparator(): 返回用于对队列中的元素进行排序的比较器;如果此队列是根据其元素的自然顺序排序的,则返回null。
contains(Object c): 判断队列中是否包含该元素,包含返回true
iterator():返回一个迭代器用于对该队列中的所有元素进行迭代。
offer(): 将制定的元素插入此优先队列。
remove(): 从该队列中删除指定元素的单个实例(如果存在)。
spliterator(): 在次队列的元素上创建一个fail-fasth和late-binding的spliterator(不明白什么意思)
toArray(): 返回一个包含队列中所有元素的数组
toArray(T[] a):返回一个包含队列中所有元素的数组

28 changes: 28 additions & 0 deletions Week 01/id_003/dQueue改写代码.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package algorithm;

import java.util.Deque;
import java.util.LinkedList;

public class dQueue {

public static void main(String[] args) {
// TODO Auto-generated method stub
Deque<String> deque = new LinkedList<String>();
deque.addLast("a");
deque.addLast("b");
deque.addLast("c");


System.out.println(deque);

String Str = deque.peekFirst();
System.out.println(Str);
System.out.println(deque);

while(deque.size()>0){
System.out.println(deque.removeLast());
}
System.out.println(deque);
}

}
20 changes: 20 additions & 0 deletions Week 01/id_003/mergeTwoLists.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
var mergeTwoLists = function(l1, l2) {
var prehead = {
val:null,
next:null
};
var pre = prehead;
while (l1 != null && l2 != null) {
if ( l1.val <= l2.val ) {
pre.next = l1;
l1 = l1.next;
} else {
pre.next = l2;
l2 = l2.next;
}
pre = pre.next;

}
pre.next = l1 == null ? l2 : l1;
return prehead.next;
};
44 changes: 44 additions & 0 deletions Week 01/id_008/LeetCode_11_008.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/**
* @param {number[]} height
* @return {number}
*/
var maxArea = function(height) {
let max = 0, x1, x2, current, min, prevHeight;

for (x1 = 0; x1 < height.length - 1; ++x1) {
for (x2 = height.length - 1; x2 >= x1 + 1; --x2) {
if (height[x1] <= prevHeight) {
continue;
}

min = height[x1] > height[x2] ? height[x2] : height[x1];
max = Math.max(max, min * (x2 - x1));
prevHeight = min;
}
}

return max;
};

/**
* @param {number[]} height
* @return {number}
*/
var maxArea = function(height) {
var max = 0, x1 = 0, x2 = height.length - 1, current, low;

while (x1 < x2) {
low = height[x1] > height[x2] ? height[x2] : height[x1];
current = low * (x2 - x1);
max = max > current ? max : current;

if (height[x1] >= height[x2]) {
--x2;
}
else if (height[x1] < height[x2]) {
++x1;
}
}

return max;
};
39 changes: 39 additions & 0 deletions Week 01/id_008/LeetCode_141_008.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/

/**
* @param {ListNode} head
* @return {boolean}
*/
var hasCycle = function(head) {
if (!head) {
return false;
}

var a = head;
var b = head;
var start = true;

while (a.next && b.next) {
if (!start && a === b) {
return true;
}

start = false;
a = a.next;
b = b.next;

if (!b.next) {
return false;
}

b = b.next;
}

return false;
};
55 changes: 55 additions & 0 deletions Week 01/id_008/LeetCode_142_008.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/

/**
* @param {ListNode} head
* @return {ListNode}
*/
var detectCycle = function(head) {
if (!head) {
return null;
}

var a = head;
var b = head;
var start = true;
var meet = null;

while (a.next && b.next) {
if (!start && a === b) {
meet = a;
break;
}

start = false;
a = a.next;
b = b.next;

if (!b.next) {
return null;
}

b = b.next;
}

if (meet) {
a = head;

while (1) {
if (a === meet) {
return meet;
}

a = a.next;
meet = meet.next;
}
}
else {
return null;
}
};
Loading