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 631b333

Browse files
Update
1 parent ab4c44d commit 631b333

9 files changed

+17
-34
lines changed

‎problems/0042.接雨水.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@
3939

4040
本文深度讲解如下三种方法:
4141

42-
* 双指针法
43-
* 动态规划
42+
* 暴力解法
43+
* 双指针优化
4444
* 单调栈
4545

4646
### 暴力解法

‎problems/0045.跳跃游戏II.md‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@
3535

3636
但思路是相似的,还是要看最大覆盖范围。
3737

38-
本题要计算最小步数,那么就要想清楚什么时候步数才一定要加一呢?
38+
本题要计算最少步数,那么就要想清楚什么时候步数才一定要加一呢?
3939

40-
贪心的思路,局部最优:当前可移动距离尽可能多走,如果还没到终点,步数再加一。整体最优:一步尽可能多走,从而达到最小步数
40+
贪心的思路,局部最优:当前可移动距离尽可能多走,如果还没到终点,步数再加一。整体最优:一步尽可能多走,从而达到最少步数
4141

4242
思路虽然是这样,但在写代码的时候还不能真的能跳多远就跳多远,那样就不知道下一步最远能跳到哪里了。
4343

44-
**所以真正解题的时候,要从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最小步数!**
44+
**所以真正解题的时候,要从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最少步数!**
4545

4646
**这里需要统计两个覆盖范围,当前这一步的最大覆盖和下一步最大覆盖**
4747

@@ -144,7 +144,7 @@ public:
144144

145145
但代码又十分简单,贪心就是这么巧妙。
146146

147-
理解本题的关键在于:**以最小的步数增加最大的覆盖范围,直到覆盖范围覆盖了终点**,这个范围内最小步数一定可以跳到,不用管具体是怎么跳的,不纠结于一步究竟跳一个单位还是两个单位。
147+
理解本题的关键在于:**以最小的步数增加最大的覆盖范围,直到覆盖范围覆盖了终点**,这个范围内最少步数一定可以跳到,不用管具体是怎么跳的,不纠结于一步究竟跳一个单位还是两个单位。
148148

149149
## 其他语言版本
150150

@@ -276,9 +276,9 @@ class Solution:
276276
for i in range(len(nums)): # 遍历数组
277277
for j in range(nums[i] + 1): # 在当前位置能够跳跃的范围内遍历
278278
if i + j < len(nums): # 确保下一跳的位置不超过数组范围
279-
result[i + j] = min(result[i + j], result[i] + 1) # 更新到达下一跳位置的最小步数
279+
result[i + j] = min(result[i + j], result[i] + 1) # 更新到达下一跳位置的最少步数
280280

281-
return result[-1] # 返回到达最后一个位置的最小步数
281+
return result[-1] # 返回到达最后一个位置的最少步数
282282

283283

284284
```

‎problems/0216.组合总和III.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,11 +209,11 @@ private:
209209
vector<int> path; // 符合条件的结果
210210
void backtracking(int targetSum, int k, int sum, int startIndex) {
211211
if (sum > targetSum) { // 剪枝操作
212-
return; // 如果path.size() == k 但sum != targetSum 直接返回
212+
return;
213213
}
214214
if (path.size() == k) {
215215
if (sum == targetSum) result.push_back(path);
216-
return;
216+
return; // 如果path.size() == k 但sum != targetSum 直接返回
217217
}
218218
for (int i = startIndex; i <= 9 - (k - path.size()) + 1; i++) { // 剪枝
219219
sum += i; // 处理

‎problems/0309.最佳买卖股票时机含冷冻期.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,9 +240,9 @@ class Solution {
240240
// 因为马上dp[0]和dp[2]的数据都会变
241241
int temp = dp[0];
242242
int temp1 = dp[2];
243-
dp[0] = Math.max(dp[0], Math.max(dp[3], dp[1]) - prices[i-1]);
243+
dp[0] = Math.max(dp[0], Math.max(dp[3], dp[1]) - prices[i]);
244244
dp[1] = Math.max(dp[1], dp[3]);
245-
dp[2] = temp + prices[i-1];
245+
dp[2] = temp + prices[i];
246246
dp[3] = temp1;
247247
}
248248
return Math.max(dp[3],Math.max(dp[1],dp[2]));

‎problems/0501.二叉搜索树中的众数.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ public:
261261
vector<int> findMode(TreeNode* root) {
262262
count = 0;
263263
maxCount = 0;
264-
TreeNode*pre = NULL; // 记录前一个节点
264+
pre = NULL; // 记录前一个节点
265265
result.clear();
266266

267267
searchBST(root);

‎problems/0669.修剪二叉搜索树.md‎

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -330,23 +330,6 @@ class Solution:
330330
return root
331331

332332
```
333-
递归法(版本二)精简
334-
```python
335-
class Solution:
336-
def trimBST(self, root: TreeNode, low: int, high: int) -> TreeNode:
337-
if root is None:
338-
return None
339-
if root.val < low:
340-
return self.trimBST(root.right, low, high)
341-
if root.val > high:
342-
return self.trimBST(root.left, low, high)
343-
root.left = self.trimBST(root.left, low, high)
344-
root.right = self.trimBST(root.right, low, high)
345-
return root
346-
347-
348-
```
349-
350333
迭代法
351334
```python
352335
class Solution:

‎problems/为了绝杀编辑距离,卡尔做了三步铺垫.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ if (s[i - 1] == t[j - 1]) {
6666

6767
## 两个字符串的删除操作
6868

69-
[动态规划:583.两个字符串的删除操作](https://programmercarl.com/0583.两个字符串的删除操作.html)给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。
69+
[动态规划:583.两个字符串的删除操作](https://programmercarl.com/0583.两个字符串的删除操作.html)给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最少步数,每步可以删除任意一个字符串中的一个字符。
7070

7171
本题和[动态规划:115.不同的子序列](https://programmercarl.com/0115.不同的子序列.html)相比,其实就是两个字符串可以都可以删除了,情况虽说复杂一些,但整体思路是不变的。
7272

‎problems/前序/vim.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121

2222
使用VIM的话,本地,服务器,开发机,一刀流,无缝切换,爽不。
2323

24-
IDE那么很吃内存,打开个IDE卡半天,用VIM就很轻便了,秒开有木有!
24+
IDE那么很吃内存,打开个IDE卡半天,用VIM就很轻便了,秒开!
2525

2626
而且在我们日常开发中,工作年头多了,都会发现没有纯粹的C++,Java开发啥的,就是 C++也得写,Java也得写,有时候写Go起个http服务,写Python处理一下数据,写shell搞个自动部署,编译啥的。 **总是就是啥语言就得写,一些以项目需求为导向!**
2727

28-
写语言还要切换不同的IDE,熟悉不同的操作姿势,想想是不是很麻烦。
28+
写语言还要切换不同的IDE,熟悉不同的操作规则,想想是不是很麻烦。
2929

3030
听说好像现在有的IDE可以支持很多语言了,这个我还不太了解,但能确定的是,IDE支持的语言再多,也不会有vim多。
3131

‎problems/图论并查集理论基础.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ join(6, 2);
289289

290290
此时我们生成的的有向图为:
291291

292-
![](https://cdn.tftree.top/others/jion.jpg)
292+
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20230910203210.png)
293293

294294
有录友可能想,`join(3, 8)` 在图中为什么 将 元素1 连向元素 3 而不是将 元素 8 连向 元素 3 呢?
295295

0 commit comments

Comments
(0)

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