C++刷leetcode几点注意事项

2021/12/25 22:07:12

本文主要是介绍C++刷leetcode几点注意事项,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  1. size() 返回的无符号数
    大概的场景如下:
int maxLen = -1
if(s.size() > maxLen) {
    maxLen = s.size();
}

由于有符号数和无符号数比较时,会当做无符号数比较,所以-1是 \(2^{31}-1\)
所以记得加上强制类型转换

  1. string类型参数,未修改是记得加引用

例如Leetcode 472. 连接词,未加引用会超时,而加上引用就176ms过

int query(Node* p, string& str, int pos) {    // 记得加引用

因为这题中,最多有1e5个字符串,每个字符串可能调用size次query,所有大量的拷贝会导致超时

  1. 统计是否出现而不是次数是,尽量用unordered_set
    unordered_map比unordered_set慢,

例如 Leetcode 面试题 17.13. 恢复空格,用unordered_map花了1040ms,而unordered_set只用了204ms



这篇关于C++刷leetcode几点注意事项的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程