File tree Expand file tree Collapse file tree 2 files changed +34
-2
lines changed
0041.First Missing Positive Expand file tree Collapse file tree 2 files changed +34
-2
lines changed Original file line number Diff line number Diff line change 66
66
67
67
栈实现。
68
68
69
- 遍历括号字符串,遇到左括号时,将左括号压入栈中 ;遇到右括号时,弹出栈顶元素(栈若为空 ,直接返回 false),判断是否是相同类型的括号 。若不匹配,直接返回 false。
69
+ 遍历括号字符串,遇到左括号时,将右括号压入栈中 ;遇到右括号时,弹出栈顶元素(若栈为空 ,直接返回 ` false ` ),判断是否是相等 。若不匹配,直接返回 ` false ` 。
70
70
71
- 遍历结束,栈若为空 ,说明括号字符串有效。
71
+ 遍历结束,若栈为空 ,说明括号字符串有效。
72
72
73
73
<!-- tabs:start -->
74
74
Original file line number Diff line number Diff line change 45
45
46
46
<!-- 这里可写通用的实现逻辑 -->
47
47
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
+
48
80
<!-- tabs:start -->
49
81
50
82
### ** Python3**
You can’t perform that action at this time.
0 commit comments