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

Commit 9ff9d56

Browse files
committed
feat: add solutions to lc problem: No.0055. Jump Game
1 parent e816450 commit 9ff9d56

File tree

9 files changed

+209
-18
lines changed

9 files changed

+209
-18
lines changed

‎README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@
165165
- [打家劫舍](./solution/0100-0199/0198.House%20Robber/README.md)
166166
- [打家劫舍 II](./solution/0200-0299/0213.House%20Robber%20II/README.md)
167167
- [删除并获得点数](./solution/0700-0799/0740.Delete%20and%20Earn/README.md)
168+
- [跳跃游戏](./solution/0000-0099/0055.Jump%20Game/README.md)
168169
- [接雨水](./solution/0000-0099/0042.Trapping%20Rain%20Water/README.md)
169170
- [最大子序和](./solution/0000-0099/0053.Maximum%20Subarray/README.md)
170171
- [礼物的最大价值](./lcof/面试题47.%20礼物的最大价值/README.md)

‎README_EN.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ Complete solutions to [LeetCode](https://leetcode.com/problemset/all/), [LCOF](h
159159
- [House Robber](./solution/0100-0199/0198.House%20Robber/README_EN.md)
160160
- [House Robber II](./solution/0200-0299/0213.House%20Robber%20II/README_EN.md)
161161
- [Delete and Earn](./solution/0700-0799/0740.Delete%20and%20Earn/README_EN.md)
162+
- [Jump Game](./solution/0000-0099/0055.Jump%20Game/README_EN.md)
162163
- [Trapping Rain Water](./solution/0000-0099/0042.Trapping%20Rain%20Water/README_EN.md)
163164
- [Maximum Subarray](./solution/0000-0099/0053.Maximum%20Subarray/README_EN.md)
164165
- [Minimum Path Sum](./solution/0000-0099/0064.Minimum%20Path%20Sum/README_EN.md)

‎solution/0000-0099/0055.Jump Game/README.md‎

Lines changed: 80 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,27 +39,105 @@
3939
<li><code>0 <= nums[i] <= 10<sup>5</sup></code></li>
4040
</ul>
4141

42-
4342
## 解法
4443

4544
<!-- 这里可写通用的实现逻辑 -->
4645

46+
贪心。
47+
4748
<!-- tabs:start -->
4849

4950
### **Python3**
5051

5152
<!-- 这里可写当前语言的特殊实现逻辑 -->
5253

5354
```python
54-
55+
class Solution:
56+
def canJump(self, nums: List[int]) -> bool:
57+
mx = 0
58+
for i, num in enumerate(nums):
59+
if i > mx:
60+
return False
61+
mx = max(mx, i + num)
62+
return True
5563
```
5664

5765
### **Java**
5866

5967
<!-- 这里可写当前语言的特殊实现逻辑 -->
6068

6169
```java
70+
class Solution {
71+
public boolean canJump(int[] nums) {
72+
int mx = 0;
73+
for (int i = 0; i < nums.length; ++i) {
74+
if (i > mx) {
75+
return false;
76+
}
77+
mx = Math.max(mx, i + nums[i]);
78+
}
79+
return true;
80+
}
81+
}
82+
```
83+
84+
### **C++**
85+
86+
```cpp
87+
class Solution {
88+
public:
89+
bool canJump(vector<int>& nums) {
90+
int mx = 0;
91+
for (int i = 0; i < nums.size(); ++i) {
92+
if (i > mx) {
93+
return false;
94+
}
95+
mx = max(mx, i + nums[i]);
96+
}
97+
return true;
98+
}
99+
};
100+
```
101+
102+
### **Go**
103+
104+
```go
105+
func canJump(nums []int) bool {
106+
mx := 0
107+
for i, num := range nums {
108+
if i > mx {
109+
return false
110+
}
111+
mx = max(mx, i+num)
112+
}
113+
return true
114+
}
115+
116+
func max(a, b int) int {
117+
if a > b {
118+
return a
119+
}
120+
return b
121+
}
122+
```
62123

124+
### **C#**
125+
126+
```cs
127+
public class Solution {
128+
public bool CanJump(int[] nums) {
129+
int mx = 0;
130+
for (int i = 0; i < nums.Length; ++i)
131+
{
132+
if (i > mx)
133+
{
134+
return false;
135+
}
136+
mx = Math.Max(mx, i + nums[i]);
137+
}
138+
return true;
139+
}
140+
}
63141
```
64142

65143
### **...**

‎solution/0000-0099/0055.Jump Game/README_EN.md‎

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,97 @@
3535
<li><code>0 &lt;= nums[i] &lt;= 10<sup>5</sup></code></li>
3636
</ul>
3737

38-
3938
## Solutions
4039

4140
<!-- tabs:start -->
4241

4342
### **Python3**
4443

4544
```python
46-
45+
class Solution:
46+
def canJump(self, nums: List[int]) -> bool:
47+
mx = 0
48+
for i, num in enumerate(nums):
49+
if i > mx:
50+
return False
51+
mx = max(mx, i + num)
52+
return True
4753
```
4854

4955
### **Java**
5056

5157
```java
58+
class Solution {
59+
public boolean canJump(int[] nums) {
60+
int mx = 0;
61+
for (int i = 0; i < nums.length; ++i) {
62+
if (i > mx) {
63+
return false;
64+
}
65+
mx = Math.max(mx, i + nums[i]);
66+
}
67+
return true;
68+
}
69+
}
70+
```
71+
72+
### **C++**
73+
74+
```cpp
75+
class Solution {
76+
public:
77+
bool canJump(vector<int>& nums) {
78+
int mx = 0;
79+
for (int i = 0; i < nums.size(); ++i) {
80+
if (i > mx) {
81+
return false;
82+
}
83+
mx = max(mx, i + nums[i]);
84+
}
85+
return true;
86+
}
87+
};
88+
```
89+
90+
### **Go**
91+
92+
```go
93+
func canJump(nums []int) bool {
94+
mx := 0
95+
for i, num := range nums {
96+
if i > mx {
97+
return false
98+
}
99+
mx = max(mx, i+num)
100+
}
101+
return true
102+
}
103+
104+
func max(a, b int) int {
105+
if a > b {
106+
return a
107+
}
108+
return b
109+
}
110+
```
52111

112+
### **C#**
113+
114+
```cs
115+
public class Solution {
116+
public bool CanJump(int[] nums) {
117+
int mx = 0;
118+
for (int i = 0; i < nums.Length; ++i)
119+
{
120+
if (i > mx)
121+
{
122+
return false;
123+
}
124+
mx = Math.Max(mx, i + nums[i]);
125+
}
126+
return true;
127+
}
128+
}
53129
```
54130

55131
### **...**
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public:
3+
bool canJump(vector<int>& nums) {
4+
int mx = 0;
5+
for (int i = 0; i < nums.size(); ++i) {
6+
if (i > mx) {
7+
return false;
8+
}
9+
mx = max(mx, i + nums[i]);
10+
}
11+
return true;
12+
}
13+
};

‎solution/0000-0099/0055.Jump Game/Solution.cs‎

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
1-
using System;
2-
31
public class Solution {
42
public bool CanJump(int[] nums) {
5-
varmaxJump = 0;
6-
for (var i = 0; i < nums.Length; ++i)
3+
intmx = 0;
4+
for (int i = 0; i < nums.Length; ++i)
75
{
8-
if (i <= maxJump)
9-
{
10-
maxJump = Math.Max(maxJump, i + nums[i]);
11-
}
12-
else
6+
if (i > mx)
137
{
148
return false;
159
}
10+
mx = Math.Max(mx, i + nums[i]);
1611
}
1712
return true;
1813
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
func canJump(nums []int) bool {
2+
mx := 0
3+
for i, num := range nums {
4+
if i > mx {
5+
return false
6+
}
7+
mx = max(mx, i+num)
8+
}
9+
return true
10+
}
11+
12+
func max(a, b int) int {
13+
if a > b {
14+
return a
15+
}
16+
return b
17+
}
Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
class Solution {
2-
32
public boolean canJump(int[] nums) {
4-
int count = 0;
5-
for (int i = nums.length - 2; i >= 0; i --) {
6-
count = nums[i] > count ? 0 : count + 1;
3+
int mx = 0;
4+
for (int i = 0; i < nums.length; ++i) {
5+
if (i > mx) {
6+
return false;
7+
}
8+
mx = Math.max(mx, i + nums[i]);
79
}
8-
return count == 0;
10+
return true;
911
}
1012
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Solution:
2+
def canJump(self, nums: List[int]) -> bool:
3+
mx = 0
4+
for i, num in enumerate(nums):
5+
if i > mx:
6+
return False
7+
mx = max(mx, i + num)
8+
return True

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /