使用 LeetCode 解决算法问题时,经常需要进行微优化。我理解,从代码可读性的角度来看,确定奇偶校验的最佳方法是检查除法的其余部分:
if(n%2==0){ }
但从执行速度来说,逻辑乘法不是更快吗?
if(n&1==0){ }
使用 LeetCode 解决算法问题时,经常需要进行微优化。我理解,从代码可读性的角度来看,确定奇偶校验的最佳方法是检查除法的其余部分:
if(n%2==0){ }
但从执行速度来说,逻辑乘法不是更快吗?
if(n&1==0){ }
让我们看看编译器从这段代码中做了什么:右边的汇编程序。
事实证明,对于这两种情况都会生成相同的结果:
无论如何,这种微观优化应该留到最后。
在解决leetcode及类似问题时,值得依次思考: