Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Damon-Da
leetcode
提交
523ae792
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,体验更适合开发者的 AI 搜索 >>
提交
523ae792
编写于
3月 02, 2019
作者:
L
liu13
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
20190302
上级
028e1405
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
104 addition
and
0 deletion
+104
-0
code/lc242.java
code/lc242.java
+23
-0
code/lc268.java
code/lc268.java
+23
-0
code/lc326.java
code/lc326.java
+25
-0
code/lc329.java
code/lc329.java
+33
-0
未找到文件。
code/lc242.java
0 → 100644
浏览文件 @
523ae792
package
code
;
/*
* 242. Valid Anagram
* 题意:字符串t是否为s打乱后的重排列
* 难度:Easy
* 分类:Hash Table, Sort
* 思路:
* Tips:
*/
public
class
lc242
{
public
boolean
isAnagram
(
String
s
,
String
t
)
{
if
(
s
.
length
()!=
t
.
length
())
return
false
;
int
[]
chs
=
new
int
[
26
];
for
(
int
i
=
0
;
i
<
s
.
length
();
i
++){
chs
[
s
.
charAt
(
i
)-
'a'
]++;
}
for
(
int
i
=
0
;
i
<
t
.
length
();
i
++){
chs
[
t
.
charAt
(
i
)-
'a'
]--;
if
(
chs
[
t
.
charAt
(
i
)-
'a'
]<
0
)
return
false
;
}
return
true
;
}
}
code/lc268.java
0 → 100644
浏览文件 @
523ae792
package
code
;
/*
* 268. Missing Number
* 题意:找出 0~n 中少的那个数
* 难度:Easy
* 分类:Array, Math, Bit Manipulation
* 思路:两种巧妙的方法,时间空间都是O(1)
* 异或
* 求和以后,减去所有
* Tips:
*/
public
class
lc268
{
public
int
missingNumber
(
int
[]
nums
)
{
int
res
=
nums
.
length
*(
nums
.
length
+
1
)/
2
;
for
(
int
i:
nums
)
res
-=
i
;
return
res
;
}
public
int
missingNumber2
(
int
[]
nums
)
{
int
res
=
nums
.
length
;
for
(
int
i
=
0
;
i
<
nums
.
length
;
i
++)
res
^=
i
^
nums
[
i
];
return
res
;
}
}
\ No newline at end of file
code/lc326.java
0 → 100644
浏览文件 @
523ae792
package
code
;
/*
* 326. Power of Three
* 题意:判断该数是否为3的幂
* 难度:Easy
* 分类:Math
* 思路:除以3,除到不能整除,判断是否为1
* Tips:
*/
public
class
lc326
{
public
boolean
isPowerOfThree
(
int
n
)
{
if
(
n
<
1
)
return
false
;
while
(
n
%
3
==
0
)
n
/=
3
;
return
n
==
1
;
}
public
boolean
isPowerOfThree2
(
int
n
)
{
if
(
n
==
1
)
return
true
;
double
d
=
n
;
while
(
d
>
1
){
d
=
d
/
3
;
if
(
d
==
1
)
return
true
;
}
return
false
;
}
}
code/lc329.java
0 → 100644
浏览文件 @
523ae792
package
code
;
/*
* 329. Longest Increasing Path in a Matrix
* 题意:寻找最长的递增路径
* 难度:Hard
* 分类:Depth-first Search, Topological Sort, Memoization
* 思路:带记忆的dfs,之前计算的最优解可以直接合并
* Tips:
*/
public
class
lc329
{
public
int
longestIncreasingPath
(
int
[][]
matrix
)
{
if
(
matrix
.
length
==
0
)
return
0
;
int
[][]
cache
=
new
int
[
matrix
.
length
][
matrix
[
0
].
length
];
//存储计算过的结果
int
res
=
0
;
for
(
int
i
=
0
;
i
<
matrix
.
length
;
i
++)
{
for
(
int
j
=
0
;
j
<
matrix
[
0
].
length
;
j
++)
{
res
=
Math
.
max
(
dfs
(
matrix
,
i
,
j
,
cache
),
res
);
}
}
return
res
;
}
public
int
dfs
(
int
[][]
matrix
,
int
i
,
int
j
,
int
[][]
cache
){
int
max
=
1
;
if
(
cache
[
i
][
j
]!=
0
)
return
cache
[
i
][
j
];
if
(
i
>
0
&&
matrix
[
i
-
1
][
j
]>
matrix
[
i
][
j
])
max
=
Math
.
max
(
dfs
(
matrix
,
i
-
1
,
j
,
cache
)+
1
,
max
);
if
(
j
>
0
&&
matrix
[
i
][
j
-
1
]>
matrix
[
i
][
j
])
max
=
Math
.
max
(
dfs
(
matrix
,
i
,
j
-
1
,
cache
)+
1
,
max
);
if
(
i
+
1
<
matrix
.
length
&&
matrix
[
i
+
1
][
j
]>
matrix
[
i
][
j
])
max
=
Math
.
max
(
dfs
(
matrix
,
i
+
1
,
j
,
cache
)+
1
,
max
);
if
(
j
+
1
<
matrix
[
0
].
length
&&
matrix
[
i
][
j
+
1
]>
matrix
[
i
][
j
])
max
=
Math
.
max
(
dfs
(
matrix
,
i
,
j
+
1
,
cache
)+
1
,
max
);
cache
[
i
][
j
]
=
max
;
return
max
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录