- size() 返回的无符号数
大概的场景如下:
int maxLen = -1
if(s.size() > maxLen) {
maxLen = s.size();
}
由于有符号数和无符号数比较时,会当做无符号数比较,所以-1是 \(2^{31}-1\)
所以记得加上强制类型转换
- string类型参数,未修改是记得加引用
例如Leetcode 472. 连接词,未加引用会超时,而加上引用就176ms过
int query(Node* p, string& str, int pos) { // 记得加引用
因为这题中,最多有1e5个字符串,每个字符串可能调用size次query,所有大量的拷贝会导致超时
- 统计是否出现而不是次数是,尽量用unordered_set
unordered_map比unordered_set慢,
例如 Leetcode 面试题 17.13. 恢复空格,用unordered_map花了1040ms,而unordered_set只用了204ms