LeetCode 记录。
使用单调栈求坡的最大宽度。
填充每个节点的下一个右侧节点指针 II:
给定一个二叉树,填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。数字范围按位与:
给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。清空 vector 元素并释放空间。
1
2
vector<int> ().swap (Vector);重新排列单词间的空格。
使用流区分字符和空格;string 的创建方式。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
string reorderSpaces (string text) {
vector<string> str_vec;
int count = 0;
string word, ans;
stringstream in (text);
while (in >> word)
{
str_vec.push_back (word);
count += word.size ();
}
if (str_vec.size () == 1)
ans = str_vec [0];
else
{
string space ((text.size () - count)/(str_vec.size () - 1), ' ');
for (int i =0; i< str_vec.size () - 1; i++)
ans += str_vec [i] + space;
ans += str_vec.back ();
}
return ans + string (text.size () - ans.size (), ' ');
}数组的相对排序。
unordered_map,hash 表的使用;sort 的自定义排序方法。旋转数字
8.Lambda 表达式
该表达式的使用
9.c++ 二分查找函数
lower_bound ()、upper_bound ()、equal_range () 以及 binary_search ()。前缀和矩阵
1
2
3
sum = A [x1..x2][y1..y2]
= P [x2][y2] - P [x1 - 1][y2] - P [x2][y1 - 1] + P [x1 - 1][y1 - 1]差分数组
有利于对固定数组大量做区间加减并查询前缀和