最近机缘巧合发现了力扣这个网站,上面的题挺好玩的。你需要找到一个最优算法来解决这些题目。但做题时可能会发现,明明用的同一种算法,怎么会比评论区慢上许多呢?这就是代码层面某些习惯拖累了你的速度。下面整理分享几个在Java中发现的几个可能会拖慢速度的代码习惯。
- 对比数字是否相等:
要对比两个数字是否相等,有两种方法:int a,b;
a==b
a-b==0
据测试a-b==0
要比a==b
快上30%。
这里说的是int而不是装了箱的Integer。
- double→int
b=Math.floor(a);
b=(int)a;
强制转换更快,但是估计是直接舍去小数罢。
- 动态的for限制条件
估计不会有人和我一样这样写吧。for(int i=0;i<=Math.ceil(Math.sqrt(c));i++)
这好像会导致每次循环都计算一次,再加上表达式计算用时久,严重拖慢速度(
我之前还以为他是只算一次的,就贪了一波。
Comments 1 条评论
博主 雪
就是说啊