【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点

LeetCode刷题攻略

LeetCode中的技巧

  1. 快捷键:调试cmd + ' 提交cmd + Enter
  2. 函数返回vector类型时可以用return {a, b}的形式 (虽缺少可读性,但可简化代码)
  3. C++判断二维矩阵边界的常用写法
    if (!grid.size() || !grid[0].size()) return 0;
    if ((grid.length) == 0 || (grid[0].length) == 0) return 0;
  4. 在class类内定义n和m(非函数体内定义),调用其他函数时也能用n和m,不需要传参数进去了

【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点

如何查看别人提交的代码

点开提交记录,不仅可以看到自己的历史代码,代码时空效率,还能看别人提交的效率很高的带
【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点
点红色柱子就可以看别人的代码了
【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点

LeetCode多组数据的坑点,新手必须要看!!!

最新万能解决方法

  • 全部放public内(包括#define,typedef,const),只需注意const要加static
  • 成员变量或函数间相对顺序任意,都是可以调用的
  • 成员变量会自动初始化为0

【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点
力扣判题机,对每个测试用例都会初始化一次类


技术问题传送门
多组数据有问题,主要是因为力扣判题机对每个测试用例都会初始化一次类,但全局变量,只会初始化第一次,后面需要手动初始化

【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点

vector等容器若不用clear清空,则必须放类内

  • 当vector容器作为全局变量时因为LeetCode要测多组数据,所以必须要用clear清空vector
  • 所以像vector,map这类容器最好定义为类内变量(因为每个测试样例都会初始化一次类),否则你可能在本地测试是通过的,但在提交代码就不会通过,因为它测了多组数据,而vector,map等每次并没有清空
【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点

提交次数和用户尝试次数的含义

提交次数是指执行代码的次数,通过次数指执行代码成功的次数
用户尝试次数是指提交解答的次数,用户通过次数是指提交解答Accepted的次数

【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点

LeetCode有时没必要用常量N数组

虽然习惯了在全局开一个常量数组,如int q[N];

但因为一开始可能不知道N要开多大,有可能开得太多,导致多一次提交错误
所以其实可以这样做(建议用vector)

【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点

【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点

错误提示pointer index

可能是输入的字符串没有加" "

【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点

【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点

错误提示AddressSanitizer:DEADLYSIGNAL

内存使用超出范围
【LeetCode攻略】使用LeetCode刷题时你必须注意的几个点