编程小技巧

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)的可以先排序再 左右夹逼


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值