Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
NoComments
leetcode
提交
b8d2f7ed
L
leetcode
项目概览
NoComments
/
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 搜索 >>
提交
b8d2f7ed
编写于
3月 07, 2019
作者:
L
liu13
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
20190307
上级
d3e07b15
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
84 addition
and
0 deletion
+84
-0
code/lc303.java
code/lc303.java
+30
-0
code/lc746.java
code/lc746.java
+21
-0
code/lc877.java
code/lc877.java
+30
-0
readme.md
readme.md
+3
-0
未找到文件。
code/lc303.java
0 → 100644
浏览文件 @
b8d2f7ed
package
code
;
/*
* 303. Range Sum Query - Immutable
* 题意:i到j的和
* 难度:Easy
* 分类:Dynamic Programming
* 思路:
* Tips:Bingo!
*/
public
class
lc303
{
class
NumArray
{
int
[]
arr
;
public
NumArray
(
int
[]
nums
)
{
arr
=
nums
;
for
(
int
i
=
1
;
i
<
arr
.
length
;
i
++){
arr
[
i
]
=
arr
[
i
-
1
]+
arr
[
i
];
}
}
public
int
sumRange
(
int
i
,
int
j
)
{
return
i
==
0
?
arr
[
j
]
:
arr
[
j
]-
arr
[
i
-
1
];
}
}
/**
* Your NumArray object will be instantiated and called as such:
* NumArray obj = new NumArray(nums);
* int param_1 = obj.sumRange(i,j);
*/
}
code/lc746.java
0 → 100644
浏览文件 @
b8d2f7ed
package
code
;
/*
* 746. Min Cost Climbing Stairs
* 题意:上楼梯,变了一下形
* 难度:Easy
* 分类:Array, Dynamic Programming
* 思路:
* Tips:Bingo!
*/
public
class
lc746
{
public
int
minCostClimbingStairs
(
int
[]
cost
)
{
if
(
cost
.
length
==
1
)
return
cost
[
0
];
int
dp1
=
cost
[
0
],
dp2
=
cost
[
1
],
dp3
=
Integer
.
MAX_VALUE
;
for
(
int
i
=
2
;
i
<
cost
.
length
;
i
++){
dp3
=
Math
.
min
(
dp1
+
cost
[
i
],
dp2
+
cost
[
i
]);
dp1
=
dp2
;
dp2
=
dp3
;
}
return
Math
.
min
(
dp1
,
dp2
);
//注意下返回值,还要比较一下
}
}
code/lc877.java
0 → 100644
浏览文件 @
b8d2f7ed
package
code
;
/*
* 877. Stone Game
* 题意:两个人拿石头堆,每次只能从最左边或最右边拿
* 难度:Medium
* 分类:Math, Dynamic Programming, Minimax
* 思路:之前做过有印象,先拿的人一定赢的。
* dp的思路需要借鉴一下的, dp[i][j] 表示数组 i~j 的最优解
* 向两边拓展的dp, 用一个变量表示 size 这个dp。想想一下三角形的区域是怎么一步步被填满的
* 拿了piles[i], 则dp[i+1][j]就被另一个人拿了,结果是 piles[i] - dp[i + 1][j]
* 拿了piles[j], 则dp[i][j-1]就被另一个人拿了,结果是 piles[j] - dp[i][j - 1]
* Tips:
*/
public
class
lc877
{
public
boolean
stoneGame
(
int
[]
piles
)
{
return
true
;
}
public
boolean
stoneGame2
(
int
[]
piles
)
{
int
[][]
dp
=
new
int
[
piles
.
length
][
piles
.
length
];
for
(
int
i
=
0
;
i
<
piles
.
length
;
i
++)
dp
[
i
][
i
]
=
piles
[
i
];
//最后是第二个人拿的,用符号
for
(
int
size
=
1
;
size
<
piles
.
length
;
size
++)
{
//外循环是 size
for
(
int
i
=
0
;
i
+
size
<
piles
.
length
;
i
++)
{
//size<len
dp
[
i
][
i
+
size
]
=
Math
.
max
(
piles
[
i
]-
dp
[
i
+
1
][
i
+
size
],
piles
[
i
+
size
]-
dp
[
i
][
i
+
size
-
1
]);
}
}
return
dp
[
0
][
piles
.
length
-
1
]>
0
;
}
}
readme.md
浏览文件 @
b8d2f7ed
...
...
@@ -157,6 +157,7 @@ LeetCode 指南
| 297
[
Java
](
./code/lc297.java
)
| 300
[
Java
](
./code/lc300.java
)
| 301
[
Java
](
./code/lc301.java
)
| 303
[
Java
](
./code/lc303.java
)
| 309
[
Java
](
./code/lc309.java
)
| 312
[
Java
](
./code/lc312.java
)
| 315
[
Java
](
./code/lc315.java
)
...
...
@@ -196,4 +197,6 @@ LeetCode 指南
| 617
[
Java
](
./code/lc617.java
)
| 621
[
Java
](
./code/lc621.java
)
| 647
[
Java
](
./code/lc647.java
)
| 746
[
Java
](
./code/lc746.java
)
| 771
[
Java
](
./code/lc771.java
)
| 877
[
Java
](
./code/lc877.java
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录