Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Damon-Da
leetcode
提交
94cfc5ba
L
leetcode
项目概览
Damon-Da
/
leetcode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
leetcode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
94cfc5ba
编写于
2月 24, 2019
作者:
L
liu13
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
20190224
上级
3b593912
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
146 addition
and
3 deletion
+146
-3
code/lc171.java
code/lc171.java
+19
-0
code/lc172.java
code/lc172.java
+15
-0
code/lc189.java
code/lc189.java
+51
-0
code/lc207.java
code/lc207.java
+3
-3
code/lc210.java
code/lc210.java
+54
-0
readme.md
readme.md
+4
-0
未找到文件。
code/lc171.java
0 → 100644
浏览文件 @
94cfc5ba
package
code
;
/*
* 171. Excel Sheet Column Number
* 题意:Excel列的表示转换为数字
* 难度:Easy
* 分类:Math
* 思路:注意AA代表的是27, 没有0的表示。26进位不是27。
* Tips:
*/
public
class
lc171
{
public
int
titleToNumber
(
String
s
)
{
char
[]
ch_arr
=
s
.
toCharArray
();
int
res
=
0
;
for
(
int
i
=
0
;
i
<
ch_arr
.
length
;
i
++){
res
+=
(
(
ch_arr
[
i
]-
'A'
+
1
)
*
Math
.
pow
(
26
,
ch_arr
.
length
-
1
-
i
)
);
}
return
res
;
}
}
code/lc172.java
0 → 100644
浏览文件 @
94cfc5ba
package
code
;
/*
* 172. Factorial Trailing Zeroes
* 题意:求n!末尾有几个0
* 难度:Easy
* 分类:Math
* 思路:思路记一下。如果末尾为0,则一定是2*5得到的0,2的数量一定比5多,所以只考虑5的数量,25算两个5。
* Tips:题目看似简单,没做过的话不好想
*/
public
class
lc172
{
public
int
trailingZeroes
(
int
n
)
{
if
(
n
==
0
)
return
0
;
return
n
/
5
+
trailingZeroes
(
n
/
5
);
}
}
code/lc189.java
0 → 100644
浏览文件 @
94cfc5ba
package
code
;
/*
* 189. Rotate Array
* 题意:数组向后移几位,超出末尾的补到前边
* 难度:Easy
* 分类:Array
* 思路:一种换状替换,别忘了可能是多个环。
* reverse 的方法,先整体反转,再按照k划分成两个数组分别反转
* Tips:
*/
public
class
lc189
{
public
void
rotate
(
int
[]
nums
,
int
k
)
{
if
(
nums
.
length
<
2
)
return
;
int
sum
=
0
;
for
(
int
start_index
=
0
;
start_index
<
nums
.
length
;
start_index
++)
{
//可能多个环,用sum判断是否停止
if
(
sum
==
nums
.
length
)
break
;
int
curr_index
=
start_index
;
int
next_index
=
(
start_index
+
k
)%
nums
.
length
;
int
temp1
=
nums
[
start_index
];
int
temp2
=
0
;
while
(
next_index
!=
start_index
){
sum
++;
temp2
=
nums
[
next_index
];
nums
[
next_index
]
=
temp1
;
temp1
=
temp2
;
curr_index
=
next_index
;
next_index
=
(
curr_index
+
k
)%
nums
.
length
;
}
nums
[
start_index
]
=
temp1
;
sum
++;
}
}
public
void
rotate2
(
int
[]
nums
,
int
k
)
{
if
(
nums
.
length
<
2
)
return
;
k
=
k
%
nums
.
length
;
//处理k>length的case
reverse
(
nums
,
0
,
nums
.
length
-
1
);
reverse
(
nums
,
0
,
k
-
1
);
reverse
(
nums
,
k
,
nums
.
length
-
1
);
}
public
void
reverse
(
int
[]
nums
,
int
begin
,
int
end
){
while
(
begin
<
end
){
int
temp
=
nums
[
begin
];
nums
[
begin
]
=
nums
[
end
];
nums
[
end
]
=
temp
;
begin
++;
end
--;
}
return
;
}
}
code/lc207.java
浏览文件 @
94cfc5ba
...
...
@@ -7,7 +7,7 @@ import java.util.*;
* 题意:课程是否能够完成
* 难度:Medium
* 分类:Depth-first Search, Breadth-first Search, Graph, Topology Sort
* 思路:两种方法,一种BFS拓扑排序,另一种DFS找是否有环
* 思路:两种方法,一种BFS拓扑排序
(每个节点,先求出入度)
,另一种DFS找是否有环
* Tips:很经典的题,拓扑排序,判断图是否有环的DFS
*/
public
class
lc207
{
...
...
@@ -17,8 +17,8 @@ public class lc207 {
System
.
out
.
println
(
canFinish2
(
2
,
prerequisites
));
}
public
static
boolean
canFinish
(
int
numCourses
,
int
[][]
prerequisites
)
{
int
[]
indegree
=
new
int
[
numCourses
];
int
[][]
graph
=
new
int
[
numCourses
][
numCourses
];
int
[]
indegree
=
new
int
[
numCourses
];
//计算入度
int
[][]
graph
=
new
int
[
numCourses
][
numCourses
];
//邻接矩阵
for
(
int
i
=
0
;
i
<
prerequisites
.
length
;
i
++)
{
int
node1
=
prerequisites
[
i
][
0
];
int
node2
=
prerequisites
[
i
][
1
];
...
...
code/lc210.java
0 → 100644
浏览文件 @
94cfc5ba
package
code
;
import
java.util.ArrayDeque
;
import
java.util.Queue
;
/*
* 210. Course Schedule II
* 题意:课程是否能够完成
* 难度:Medium
* 分类:Depth-first Search, Breadth-first Search, Graph, Topology Sort
* 思路:两种方法,一种BFS拓扑排序(每个节点,先求出入度),另一种DFS找是否有环
* Tips:和lc207一模一样,换了个输出
* 注意先统计入度并转化为邻接矩阵,之后就好操作了
*/
public
class
lc210
{
public
static
void
main
(
String
[]
args
)
{
int
[][]
prerequisites
=
{{
1
,
0
},{
2
,
0
},{
3
,
1
},{
3
,
2
}};
//System.out.println(canFinish(2, prerequisites));
System
.
out
.
println
(
findOrder
(
4
,
prerequisites
));
}
public
static
int
[]
findOrder
(
int
numCourses
,
int
[][]
prerequisites
)
{
int
[]
degrees
=
new
int
[
numCourses
];
int
[][]
graph
=
new
int
[
numCourses
][
numCourses
];
for
(
int
i
=
0
;
i
<
prerequisites
.
length
;
i
++)
{
int
course1
=
prerequisites
[
i
][
0
];
int
course2
=
prerequisites
[
i
][
1
];
graph
[
course2
][
course1
]
=
1
;
degrees
[
course1
]++;
}
Queue
<
Integer
>
qu
=
new
ArrayDeque
();
int
[]
res
=
new
int
[
numCourses
];
int
sum
=
0
;
for
(
int
i
=
0
;
i
<
degrees
.
length
;
i
++)
{
if
(
degrees
[
i
]==
0
)
{
qu
.
add
(
i
);
res
[
sum
]
=
i
;
sum
++;
}
}
while
(!
qu
.
isEmpty
()){
int
curr_course
=
qu
.
remove
();
for
(
int
i
=
0
;
i
<
numCourses
;
i
++)
{
if
(
graph
[
curr_course
][
i
]==
1
){
degrees
[
i
]--;
if
(
degrees
[
i
]==
0
){
qu
.
add
(
i
);
res
[
sum
]
=
i
;
sum
++;
}
}
}
}
return
sum
==
numCourses
?
res
:
new
int
[
0
];
}
}
readme.md
浏览文件 @
94cfc5ba
...
...
@@ -106,12 +106,16 @@ Language: Java
| 152
[
Java
](
./code/lc152.java
)
| 155
[
Java
](
./code/lc155.java
)
| 160
[
Java
](
./code/lc160.java
)
| 162
[
Java
](
./code/lc162.java
)
| 166
[
Java
](
./code/lc166.java
)
| 169
[
Java
](
./code/lc169.java
)
| 179
[
Java
](
./code/lc179.java
)
| 198
[
Java
](
./code/lc198.java
)
| 200
[
Java
](
./code/lc200.java
)
| 206
[
Java
](
./code/lc206.java
)
| 207
[
Java
](
./code/lc207.java
)
| 208
[
Java
](
./code/lc208.java
)
| 212
[
Java
](
./code/lc212.java
)
| 215
[
Java
](
./code/lc215.java
)
| 221
[
Java
](
./code/lc221.java
)
| 226
[
Java
](
./code/lc226.java
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录