Skip to content

Commit c2f6362

Browse files
authored
feat: add solution description to lc problems: No.0020,0041 (#798)
- No.0020.Valid Parentheses - No.0041.First Missing Positive
1 parent a7dfa7e commit c2f6362

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

solution/0000-0099/0020.Valid Parentheses/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@
6666

6767
栈实现。
6868

69-
遍历括号字符串,遇到左括号时,将左括号压入栈中;遇到右括号时,弹出栈顶元素(栈若为空,直接返回 false),判断是否是相同类型的括号。若不匹配,直接返回 false。
69+
遍历括号字符串,遇到左括号时,将右括号压入栈中;遇到右括号时,弹出栈顶元素(若栈为空,直接返回 `false`),判断是否是相等。若不匹配,直接返回 `false`
7070

71-
遍历结束,栈若为空,说明括号字符串有效。
71+
遍历结束,若栈为空,说明括号字符串有效。
7272

7373
<!-- tabs:start -->
7474

solution/0000-0099/0041.First Missing Positive/README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,38 @@
4545

4646
<!-- 这里可写通用的实现逻辑 -->
4747

48+
从简单到复杂。
49+
50+
**哈希表:**
51+
52+
无视空间需求,使用哈希表或数组来记录 `nums` 中所有出现过的**正整数**。然后在其中查找 `(1 ~ nums.length)`,返回第一个不存在记录的正整数即可。
53+
54+
**排序:**
55+
56+
方法之一
57+
58+
```txt
59+
FRRST-MISSING-POSITIVE(A)
60+
A.sort()
61+
r = 1
62+
for n in A
63+
if n == r
64+
r++
65+
else if n > r
66+
break
67+
return r
68+
```
69+
70+
**常数空间:**
71+
72+
有一个现成的记录容器,那就是 `nums` 本身。
73+
74+
使用下标来记录数据,只关注正整数,对于正整数 `x`,将其归为至 `nums[x - 1]` 位置(与对应位置的元素进行交换)。
75+
76+
当所有的正整数归位之后,再次遍历 `nums`,找到第一个不满足 `nums[i] != i + 1` 表达式的位置,返回 `i + 1`。若是全部满足,则返回 `nums.length + 1`
77+
78+
> 因为存在重复元素,只要 `nums[x - 1] == x` 条件已满足,那么再遇到 `x` 时,直接跳过。
79+
4880
<!-- tabs:start -->
4981

5082
### **Python3**

0 commit comments

Comments
 (0)