Commit Graph

180 Commits

Author SHA1 Message Date
whai
93cbd6955c 三指针解决hashmap问题
- 注意重复指针跳过的方法
2024-01-03 22:13:32 +08:00
whai
bdbfa1854c 1
454
2024-01-03 21:01:34 +08:00
whai
8490fdfcf7 1
454
2024-01-02 22:04:25 +08:00
whai
c7ed23b029 LeetCode202
- 快乐数
- 使用Set,循环出现就不是快乐数

LeetCode349
LeetCode350
- 数组交集
- 使用数组映射
2024-01-02 17:42:26 +08:00
whai
48a3b2f043 - 287 使用快慢指针,(如何将数组映射成为一个链表)
|  1   |   2  |  4   |  2   |  3   |      |
| ---- | ---- | ---- | ---- | ---- | ---- |
|  0   |   1  |  2   |  3   |  4   |      |
graph LR
A[0] --> 1
1 --> 2
2 --> 4
4 --> 3
3 --> 2

- 242. 有效的字母异位词
2024-01-01 20:04:29 +08:00
whai
8772be1c10 [142. 环形链表 II](https://leetcode.cn/problems/linked-list-cycle-ii/)
## 1. 为什么快慢指针一定会相遇?

- `V_fast = 2`、`V_slow = 1` 相对速度为1,就一定会相遇

## 2. 为什么慢指针一圈就能一定能被追上?

两个角度:

1. `|fast- slow| < 1 圈` 所以slow在环内走不会超过一周
2. 慢指针走一圈,快指针走两圈,早就遇上了。
2024-01-01 15:35:22 +08:00
whai
db1b18ae63 链表
修改多使用这个栈会更快

LinkedList比Stack快的原因如下:

- 基于数组实现:Stack基于数组实现,随机访问(查找)效率更高,增删改效率较低。

  *     基于链表实现:LinkedList基于链表实现,增删改效率更高,随机访问(查找)效率较低。

**对于频繁的插入、删除操作,利用LinkedList实现栈自然比Stack快很多。**

0207
两个链表交替双指针
原理:双指针交替完长度是一样的,最后会同步
2023-12-31 22:05:09 +08:00
whai
efb982a11b 修改分类 2023-12-31 21:01:41 +08:00
whai
d9687332dc 修改分类 2023-12-31 19:39:18 +08:00
whai
acc3ac725c LeetCode24
- 链表两两对换
2023-12-29 20:18:12 +08:00
whai
f6d0c1582a LeetCode206
- 移动指针的方式不一定是.next
- 递归 只考虑当前这个部分,<b>把其他的部分扔给下一次递归</b>
2023-12-28 20:35:34 +08:00
whai
c998f0351e LeetCode203 707链表
- 双向链表的使用
- 增加虚拟头节点方便操作
2023-12-27 22:08:15 +08:00
whai
8ad2f18126 LeetCode203 707链表
- 双向链表的使用
- 增加虚拟头节点方便操作
2023-12-27 19:44:46 +08:00
whai
9385b628ad LeetCode203 707链表
- 双向链表的使用
- 增加虚拟头节点方便操作
2023-12-27 11:06:00 +08:00
whai
c707fd4ca2 LeetCode54 2023-12-24 22:03:19 +08:00
whai
177d5a4849 LeetCode59 2023-12-24 12:37:56 +08:00
whai
5926432b0a LeetCode209
双指针滑动窗口
while不断去除sum中的数,直到不满足>target的条件
2023-12-10 21:09:11 +08:00
whai
961aa4cea9 LeetCode997
双指针!

- 找到0的左右,分别从左右插入到新数组中
- 从左到右比较最大的数,从大到小插入新的数组中
2023-12-08 21:22:50 +08:00
whai
529a6193d9 LeetCode26 2023-12-07 23:34:42 +08:00
whai
57aa0a6aa9 LeetCode35二分查找
int mid = ((right - left) >> 1) + left; /2 用这个方法
right-left 就是从0开始到n, 右移动一位就是除以2,获得到这个区间的一半,加上起始的left 就是(right + left)/2
2023-12-06 21:46:19 +08:00
whai
66f8bc1019 LeetCode35二分查找
int mid = ((right - left) >> 1) + left; /2 用这个方法
2023-12-06 21:41:12 +08:00
whai
d19cd4f072 367 二分查找深入理解
关注查找的区间问题
2023-12-06 08:18:12 +08:00
whai
01864dd56d 367 二分查找深入理解
关注查找的区间问题
2023-12-05 21:34:29 +08:00
whai
c2dc47ed53 69 2023-12-04 14:59:07 +08:00
whai
5c6ccf0171 704 2023-12-03 11:48:29 +08:00
whai
f04d15a4f8 704
相关题目推荐
35.搜索插入位置(opens new window)
34.在排序数组中查找元素的第一个和最后一个位置(opens new window)
69.x 的平方根(opens new window)
367.有效的完全平方数(opens new window)
#其他语言版本
2023-12-03 11:48:04 +08:00
whai
07abe90335 增加双头指针移动
相关题目推荐
26.删除排序数组中的重复项(opens new window)
283.移动零(opens new window)
844.比较含退格的字符串(opens new window)
977.有序数组的平方(opens new window)
#其他语言版本
2023-12-03 11:47:22 +08:00
whai
60cff832db 增加二分查找704 2023-12-02 20:56:26 +08:00
whai
50350417ae 初始化 2023-12-01 21:21:57 +08:00
whai
bc35fd83f4 初始化 2023-12-01 21:20:53 +08:00