Skip to content

Commit 441d804

Browse files
committed
typo
1 parent 90c2036 commit 441d804

2 files changed

Lines changed: 33 additions & 6 deletions

File tree

_posts/2025-04-22-首次面试后的算法复盘之链表与二叉树.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ ListNode* getIntersectionNode(ListNode* headA, ListNode* headB)
186186
}
187187
```
188188

189-
- 除了上述巧思解法外,还可引入哈希集合`std::unordered_set`来避免暴力遍历的时间复杂度
189+
- 除了上述巧思解法外,还可引入哈希集合`unordered_set`来避免暴力遍历的时间复杂度
190190

191191
```cpp
192192
// ListNode* getIntersectionNode(ListNode* headA, ListNode* headB)
@@ -1555,7 +1555,7 @@ TreeNode* invertTree(TreeNode* root)
15551555
{
15561556
if (root != nullptr)
15571557
{
1558-
std::swap(root->left, root->right);
1558+
swap(root->left, root->right);
15591559
invertTree(root->left);
15601560
invertTree(root->right);
15611561
}

_posts/2025-06-13-数组相关算法的浅浅刷题笔记.md

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,14 +162,14 @@ void rotate(vector<int>& nums, int k)
162162
{
163163
k %= nums.size();
164164
165-
std::vector<int> _temp;
165+
vector<int> _temp;
166166
_temp.resize(k);
167167
168168
for (int _j = 0; _j < k; _j++)
169169
_temp[_j] = nums[nums.size() - k + _j];
170170
171171
for (int _i = nums.size() - k - 1; _i >= 0; _i--)
172-
std::swap(nums[_i], nums[k + _i]);
172+
swap(nums[_i], nums[k + _i]);
173173
174174
for (int _m = 0; _m < k; _m++)
175175
nums[_m] = _temp[_m];
@@ -244,7 +244,7 @@ vector<int> productExceptSelf(vector<int>& nums)
244244
for (int left = 0; left < n; left++)
245245
{
246246
right = (n - 1) - left;
247-
247+
248248
ans[left] *= lp;
249249
lp *= nums[left];
250250

@@ -255,6 +255,33 @@ vector<int> productExceptSelf(vector<int>& nums)
255255
}
256256
```
257257
258+
- 上面这个有点抽象,下面这个算是兼具效率(不消耗额外空间)和易读性的版本
259+
260+
```cpp
261+
vector<int> productExceptSelf(vector<int>& nums)
262+
{
263+
int n = nums.size();
264+
vector<int> ans; ans.resize(n, 1);
265+
266+
//从左到右,计算左侧累积乘积
267+
int accum = 1;
268+
for (int i = 0; i < n; i++)
269+
{
270+
ans[i] *= accum;
271+
accum *= nums[i];
272+
}
273+
//从右到左,计算右侧累积乘积
274+
accum = 1;
275+
for (int i = n - 1; i >= 0; i--)
276+
{
277+
ans[i] *= accum;
278+
accum *= nums[i];
279+
}
280+
281+
return ans;
282+
}
283+
```
284+
258285
#### [和为K的子数组](https://leetcode.cn/problems/subarray-sum-equals-k/?envType=study-plan-v2&envId=top-100-liked)
259286
- 暴力枚举法,高时间复杂度,低空间复杂度
260287

@@ -657,7 +684,7 @@ vector<int> maxSlidingWindow(vector<int>& nums, int k)
657684
void bubble(vector<int>& nums, int begin, int end)
658685
{
659686
for (int i = begin; i < end; i++)
660-
std::swap(nums[i], nums[i+1]);
687+
swap(nums[i], nums[i+1]);
661688
}
662689

663690
void moveZeroes(vector<int>& nums)

0 commit comments

Comments
 (0)