2025/10/2小于 1 分钟
215. 数组中的第K个最大元素 - 力扣(LeetCode)
给定整数数组
nums和整数k,请返回数组中第**k**个最大的元素。请注意,你需要找的是数组排序后的第
k个最大的元素,而不是第k个不同的元素。你必须设计并实现时间复杂度为
O(n)的算法解决此问题。示例 1:
输入: [3,2,1,5,6,4], k = 2 输出: 5示例 2:
输入: [3,2,3,1,2,4,5,5,6], k = 4 输出: 4提示:
1 <= k <= nums.length <= 105-104 <= nums[i] <= 104
2025/10/2大约 3 分钟
给你两个二进制字符串
a和b,以二进制字符串的形式返回它们的和。示例 1:
输入:a = "11", b = "1" 输出:"100"示例 2:
输入:a = "1010", b = "1011" 输出:"10101"提示:
1 <= a.length, b.length <= 104a和b仅由字符'0'或'1'组成- 字符串如果不是
"0",就不含前导零
2025/10/2大约 3 分钟
回溯模板
result = []
def backtrack(路径, 选择列表):
if 满足结束条件:
result.add(路径)
return
for 选择 in 选择列表:
做选择
backtrack(路径, 选择列表)
撤销选择
2025/10/2大约 6 分钟
208. 实现 Trie (前缀树) - 力扣(LeetCode)
Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。
请你实现 Trie 类:
Trie()初始化前缀树对象。void insert(String word)向前缀树中插入字符串word。boolean search(String word)如果字符串word在前缀树中,返回true(即,在检索之前已经插入);否则,返回false。boolean startsWith(String prefix)如果之前已经插入的字符串word的前缀之一为prefix,返回true;否则,返回false。
2025/10/2大约 4 分钟
位运算符
| 符号 | 含义 | 特点 |
|---|---|---|
& |
按位与 | 都为 1 才是 1 |
| ` | ` | ` |
^ |
按位异或 | 相同为 0,不同为 1 |
~ |
按位取反 | 0 变 1,1 变 0 |
<< |
左移 | 低位补 0 |
>> |
右移(算术) | 高位补符号位 |
>>> |
无符号右移 | 高位补 0 |
2025/10/2大约 1 分钟
桶排序
sortList(head)
│
┌────────────┴─────────────┐
│ 是否只有 0 或 1 个节点? │
└───────┬────────┬─────────┘
│是 │否
▼ ▼
返回 head 找中点 slow
pre.next = null
│
▼
┌───────────────┴───────────────┐
│ │
sortList(leftHalf) sortList(rightHalf)
│ │
┌────┴────┐ ┌────┴────┐
│ 递归返回 │ │ 递归返回 │
│ 有序左链 │ │ 有序右链 │
└────┬────┘ └────┬────┘
▼ ▼
┌──────────────┴──────────────┐
│ merge(有序左链, 有序右链) │
└──────────────┬──────────────┘
▼
返回合并后的有序链表
2025/10/2小于 1 分钟
