最近机缘巧合发现了力扣这个网站,上面的题挺好玩的。你需要找到一个最优算法来解决这些题目。但做题时可能会发现,明明用的同一种算法,怎么会比评论区慢上许多呢?这就是代码层面某些习惯拖累了你的速度。下面整理分享几个在Java中发现的几个可能会拖慢速度的代码习惯。

  1. 对比数字是否相等:
    要对比两个数字是否相等,有两种方法:
    int a,b;
    • a==b
    • a-b==0
      据测试a-b==0要比 a==b快上30%。
      这里说的是int而不是装了箱的Integer。
  2. double→int
    • b=Math.floor(a);
    • b=(int)a;
      强制转换更快,但是估计是直接舍去小数罢。
  3. 动态的for限制条件
    估计不会有人和我一样这样写吧。
    for(int i=0;i<=Math.ceil(Math.sqrt(c));i++)
    这好像会导致每次循环都计算一次,再加上表达式计算用时久,严重拖慢速度(
    我之前还以为他是只算一次的,就贪了一波。