1 判断奇数:if(n & 0x1) 或用用 x % 2 != 0,不要用 x % 2 == 1,因为x可能是负 数。
2 在判断两个浮点数 a 和 b 是否相等时,不要用 a==b,应该判断二者之差的绝对值 fabs(a-b) 是否小于某个阈值,例如 1e-9
3 用 char 的值作为数组下标(例如,统计字符串中每个字符出现的次数),要考虑到 char 可能是负数。有的人考虑到了,先强制转型为 unsigned int 再用作下标,这仍然 是错的。正确的做法是,先强制转型为 unsigned char,再用作下标
4 STL相关:
(1)用一个哈希表 unordered_map<int, bool> used 记录每个元素是否使用
(2)初始化(数组转化为map) 下标有关的操作
for (int i = 0; i < num.size(); i++) { mapping[num[i]] = i; }
(3) 关于map的查找:mapping.find(gap) != mapping.end() 表示找到
5 auto:用来声明自动变量,使用auto变量的优势是不需要考虑去变量是否被释放,比较安全吧
6 关于求解sum问题(一个无序set里面k个数sum可以逼近或等于一个给定的target)的可以先排序再 左右夹逼