Skip to content

Commit 78bfec7

Browse files
Update
1 parent b697353 commit 78bfec7

4 files changed

+62
-61
lines changed

problems/0134.加油站.md

+22-26
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
66

77

8-
## 134. 加油站
8+
# 134. 加油站
99

1010
[力扣题目链接](https://leetcode-cn.com/problems/gas-station/)
1111

@@ -23,32 +23,27 @@
2323

2424
示例 1:
2525
输入:
26-
gas = [1,2,3,4,5]
27-
cost = [3,4,5,1,2]
26+
* gas = [1,2,3,4,5]
27+
* cost = [3,4,5,1,2]
2828

2929
输出: 3
3030
解释:
31-
从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。此时油箱有 = 0 + 4 = 4 升汽油
32-
开往 4 号加油站,此时油箱有 4 - 1 + 5 = 8 升汽油
33-
开往 0 号加油站,此时油箱有 8 - 2 + 1 = 7 升汽油
34-
开往 1 号加油站,此时油箱有 7 - 3 + 2 = 6 升汽油
35-
开往 2 号加油站,此时油箱有 6 - 4 + 3 = 5 升汽油
36-
开往 3 号加油站,你需要消耗 5 升汽油,正好足够你返回到 3 号加油站。
37-
因此,3 可为起始索引。
31+
* 从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。此时油箱有 = 0 + 4 = 4 升汽油
32+
* 开往 4 号加油站,此时油箱有 4 - 1 + 5 = 8 升汽油
33+
* 开往 0 号加油站,此时油箱有 8 - 2 + 1 = 7 升汽油
34+
* 开往 1 号加油站,此时油箱有 7 - 3 + 2 = 6 升汽油
35+
* 开往 2 号加油站,此时油箱有 6 - 4 + 3 = 5 升汽油
36+
* 开往 3 号加油站,你需要消耗 5 升汽油,正好足够你返回到 3 号加油站。
37+
* 因此,3 可为起始索引。
3838

3939
示例 2:
4040
输入:
41-
gas = [2,3,4]
42-
cost = [3,4,3]
41+
* gas = [2,3,4]
42+
* cost = [3,4,3]
4343

44-
输出: -1
45-
解释:
46-
你不能从 0 号或 1 号加油站出发,因为没有足够的汽油可以让你行驶到下一个加油站。
47-
我们从 2 号加油站出发,可以获得 4 升汽油。 此时油箱有 = 0 + 4 = 4 升汽油
48-
开往 0 号加油站,此时油箱有 4 - 3 + 2 = 3 升汽油
49-
开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油
50-
你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。
51-
因此,无论怎样,你都不可能绕环路行驶一周。
44+
* 输出: -1
45+
* 解释:
46+
你不能从 0 号或 1 号加油站出发,因为没有足够的汽油可以让你行驶到下一个加油站。我们从 2 号加油站出发,可以获得 4 升汽油。 此时油箱有 = 0 + 4 = 4 升汽油。开往 0 号加油站,此时油箱有 4 - 3 + 2 = 3 升汽油。开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油。你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。因此,无论怎样,你都不可能绕环路行驶一周。
5247

5348

5449
## 暴力方法
@@ -196,7 +191,7 @@ public:
196191
## 其他语言版本
197192
198193
199-
Java
194+
### Java
200195
```java
201196
// 解法1
202197
class Solution {
@@ -239,8 +234,9 @@ class Solution {
239234
return index;
240235
}
241236
}
242-
```
243-
Python:
237+
```
238+
239+
### Python
244240
```python
245241
class Solution:
246242
def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:
@@ -257,7 +253,7 @@ class Solution:
257253
return start
258254
```
259255

260-
Go:
256+
### Go
261257
```go
262258
func canCompleteCircuit(gas []int, cost []int) int {
263259
curSum := 0
@@ -278,7 +274,7 @@ func canCompleteCircuit(gas []int, cost []int) int {
278274
}
279275
```
280276

281-
Javascript:
277+
### Javascript
282278
暴力:
283279
```js
284280
var canCompleteCircuit = function(gas, cost) {
@@ -343,7 +339,7 @@ var canCompleteCircuit = function(gas, cost) {
343339
};
344340
```
345341

346-
C:
342+
### C
347343
```c
348344
int canCompleteCircuit(int* gas, int gasSize, int* cost, int costSize){
349345
int curSum = 0;

problems/0135.分发糖果.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
66

77

8-
## 135. 分发糖果
8+
# 135. 分发糖果
99

1010
[力扣题目链接](https://leetcode-cn.com/problems/candy/)
1111

@@ -19,15 +19,14 @@
1919
那么这样下来,老师至少需要准备多少颗糖果呢?
2020

2121
示例 1:
22-
输入: [1,0,2]
23-
输出: 5
24-
解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。
22+
* 输入: [1,0,2]
23+
* 输出: 5
24+
* 解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。
2525

2626
示例 2:
27-
输入: [1,2,2]
28-
输出: 4
29-
解释: 你可以分别给这三个孩子分发 1、2、1 颗糖果。
30-
第三个孩子只得到 1 颗糖果,这已满足上述两个条件。
27+
* 输入: [1,2,2]
28+
* 输出: 4
29+
* 解释: 你可以分别给这三个孩子分发 1、2、1 颗糖果。第三个孩子只得到 1 颗糖果,这已满足上述两个条件。
3130

3231

3332
## 思路
@@ -127,7 +126,7 @@ public:
127126
## 其他语言版本
128127
129128
130-
Java
129+
### Java
131130
```java
132131
class Solution {
133132
/**
@@ -161,7 +160,7 @@ class Solution {
161160
}
162161
```
163162

164-
Python
163+
### Python
165164
```python
166165
class Solution:
167166
def candy(self, ratings: List[int]) -> int:
@@ -175,7 +174,7 @@ class Solution:
175174
return sum(candyVec)
176175
```
177176

178-
Go:
177+
### Go
179178
```golang
180179
func candy(ratings []int) int {
181180
/**先确定一边,再确定另外一边
@@ -213,7 +212,8 @@ func findMax(num1 int ,num2 int) int{
213212
return num2
214213
}
215214
```
216-
Javascript:
215+
216+
### Javascript:
217217
```Javascript
218218
var candy = function(ratings) {
219219
let candys = new Array(ratings.length).fill(1)

problems/0860.柠檬水找零.md

+23-23
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
66

77

8-
## 860.柠檬水找零
8+
# 860.柠檬水找零
99

1010
[力扣题目链接](https://leetcode-cn.com/problems/lemonade-change/)
1111

@@ -20,30 +20,30 @@
2020
如果你能给每位顾客正确找零,返回 true ,否则返回 false 。
2121

2222
示例 1:
23-
输入:[5,5,5,10,20]
24-
输出:true
25-
解释:
26-
前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。
27-
第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。
28-
第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。
29-
由于所有客户都得到了正确的找零,所以我们输出 true。
23+
* 输入:[5,5,5,10,20]
24+
* 输出:true
25+
* 解释:
26+
* 前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。
27+
* 第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。
28+
* 第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。
29+
* 由于所有客户都得到了正确的找零,所以我们输出 true。
3030

3131
示例 2:
32-
输入:[5,5,10]
33-
输出:true
32+
* 输入:[5,5,10]
33+
* 输出:true
3434

3535
示例 3:
36-
输入:[10,10]
37-
输出:false
36+
* 输入:[10,10]
37+
* 输出:false
3838

3939
示例 4:
40-
输入:[5,5,10,10,20]
41-
输出:false
42-
解释:
43-
前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。
44-
对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。
45-
对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。
46-
由于不是每位顾客都得到了正确的找零,所以答案是 false。
40+
* 输入:[5,5,10,10,20]
41+
* 输出:false
42+
* 解释:
43+
* 前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。
44+
* 对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。
45+
* 对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。
46+
* 由于不是每位顾客都得到了正确的找零,所以答案是 false。
4747

4848
提示:
4949

@@ -124,7 +124,7 @@ public:
124124
## 其他语言版本
125125
126126
127-
Java
127+
### Java
128128
```java
129129
class Solution {
130130
public boolean lemonadeChange(int[] bills) {
@@ -153,7 +153,7 @@ class Solution {
153153
}
154154
```
155155

156-
Python
156+
### Python
157157
```python
158158
class Solution:
159159
def lemonadeChange(self, bills: List[int]) -> bool:
@@ -179,7 +179,7 @@ class Solution:
179179

180180
```
181181

182-
Go:
182+
### Go
183183

184184
```golang
185185
func lemonadeChange(bills []int) bool {
@@ -221,7 +221,7 @@ func lemonadeChange(bills []int) bool {
221221
}
222222
```
223223

224-
Javascript:
224+
### Javascript
225225
```Javascript
226226
var lemonadeChange = function(bills) {
227227
let fiveCount = 0

problems/动态规划总结篇.md

+5
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,11 @@
115115

116116
能把本篇中列举的题目都研究通透的话,你的动规水平就已经非常高了。 对付面试已经足够!
117117

118+
119+
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20211121223754.png)
120+
121+
这个图是 [代码随想录知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ) 成员:[](https://wx.zsxq.com/dweb2/index/footprint/185251215558842),所画,总结的非常好,分享给大家。
122+
118123
这已经是全网对动规最深刻的讲解系列了。
119124

120125
**其实大家去网上搜一搜也可以发现,能把动态规划讲清楚的资料挺少的,因为动规确实很难!要给别人讲清楚更难!**

0 commit comments

Comments
 (0)